欢迎来到EDA中国!
当前位置:网站首页 >技术专栏 > ARM

MFC如何初始化子对话框ComboBox控件

发布时间: 2012-08-01 11:21:37     来源: EDA中国

MFC,初始化,子对话框,ComboBox,控件
中心思想是在子对话框的代码中添加OnInitDialog()函数 进行重载 这样的话 在父对话框中Button的响应事件中创建一个模态对话框时  系统会首先调用OnInitDialog函数来进行子对话框初始化

        我在TQ2440+WINCE5.0上测试通过:

         假设父对话框为A   子对话框为B

        1 建立一个基于对话框的应用程序,添加Button控件 

         2 添加一个新的Dialog资源 双击该对话框界面 为它关联一个类 比如CBDlg

         3 在A中添加B的头文件  在B中添加A的头文件

         4  在Button的响应事件中 代码如下:

        CBDlg dlg;
        dlg.DoModal();

这样就创建了一个模态对话框 是A的子对话框

           5 子对话框B中添加ComboBox控件 子类B的头文件中添加ComboBox指针pComboBox

CBDlg.h中添加 ComboBox *pComboBox;

添加初始化函数 BOOL OnInitDialog();//父对话框中会有OnInitDialog函数 子对话框需要自己手动添加,这一点需要注意!!!

             6 子对话框的初始化函数添加ComboBox初始化代码:

BOOL CChildDlg::OnInitDialog()
{
 CDialog::OnInitDialog();//这是我从父对话框的初始化函数抄来的
 
 pComboBox=((CComboBox*)GetDlgItem(IDC_COMBO1));
 pComboBox->AddString(_T("内容"));
 pComboBox->AddString(_T("价格"));
 pComboBox->SetCurSel(0);
 printf("CChildDlg init is finished");
 
 return TRUE; 
}

            7  双击ComboBox控件 在ComboBox的OnCbnSelchange的响应事件中添加响应代码:

 CString str;
 int nIndex = pComboBox->GetCurSel();//获取用户选项
 pComboBox->GetLBText(nIndex, str);//将当前显示内容置为当前选项
 
 CClientDC dc(this);//以下是将用户选中的内容显示到屏幕上 看看程序是否正确 
 CPoint point1(0,0),point2(50,50);
 CRect rect(point1,point2);
 dc.DrawText(str,rect,DT_LEFT);

以上代码在TQ2440+WINCE5.0平台测试通过

获取帮助