我测试我快乐,测试与梦想齐飞.

MFC对话框

上一篇 / 下一篇  2008-08-06 20:32:26 / 个人分类:C语言

今天的工作是新建用户,用弹出对话框来获得新用户的信息...

1.菜单弹出的新建用户对话框和菜单所在的对话框,要把新建的用户信息在之前的对话框中显示出来.因为显示是由对话框中的CListBox控件的AddString方法来完成的(单一的增加),所以在新建用户的对话框中必须要获取指向菜单对话框的指针来完成显示..而这个要通过句柄来完成....要想在一个类中调用一个对话框,就要获得该对话框的句柄,

    HWND   hWnd;
     hWnd=::FindWindow(NULL,_T("User"));        
  //lpszClassName:窗口类名,lpszWindowName:窗口标题。两个要一个就可以了,当然两个更准确  
    if   (hWnd==false) 
  MessageBox("error");
  Dialog_User* pWnd= (Dialog_User*)FromHandle(hWnd);
     pWnd->m_listbox_user.AddString(m_user_name);

要包含该调用对话框的头文件...

2.如何把CString类型的数据转换为char[20],因为我在定义数据结构时把用户名和密码都用char[20]来定义的(很不方便,但是我对C比较熟,数据结构容易出错,就选最拿手的)

 char *username,*password;
 int i;
 username=m_user_name.GetBuffer(m_user_name.GetLength());
 password=m_user_password.GetBuffer(m_user_password.GetLength());
 for(i=0;i<19;i++)
 {   if(i<strlen(username))
      userinfo.user_name[i]=*(username+i);
     else
   userinfo.user_name[i]=' ';
 }
 userinfo.user_name[19]='\0';
 
 for(i=0;i<19;i++)
 {   if(i<strlen(password))
      userinfo.user_password[i]=*(password+i);
     else
   userinfo.user_password[i]=' ';
 }
 userinfo.user_password[19]='\0';

但是从对话框控件中获得的都是CString类型...

    GetDlgItem(IDC_EDIT_USER_NAME)->GetWindowText(m_user_name);
    GetDlgItem(IDC_EDIT_PASSWORD)->GetWindowText(m_user_password);
    GetDlgItem(IDC_EDIT_REPEAT_PASSWORD)->GetWindowText(m_repeat_password);

现在先用这个笨点的办法把东西实现再说,等以后有时间学下MFC的数据结构和文件操作,再把程序优化下...
   


TAG: C语言

 

评分:0

我来说两句

日历

« 2024-04-27  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 7646
  • 日志数: 11
  • 建立时间: 2008-06-23
  • 更新时间: 2008-09-25

RSS订阅

Open Toolbar