Rain_ning‘s Diaries https://passport2.21ic.com/?621237 [收藏] [复制] [RSS]

日志

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

已有 3639 次阅读2011-4-21 08:28 |个人分类:Windows编程 MFC API|系统分类:ARM| 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平台测试通过


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)