MFC 对话框编程 总结
对话框创建方法:
a. 先在Resource View 下 工程的Dialog文件夹中 右键 Insert Dialog 或Insert Resouce-> 选中 Dialog
b. 然后在该对话框控件中,右键-》Add Class, 创建一个与之对应的类(如CTestDlg)。在MFC中,对资源的操作通常都是通过一个与资源相关的类来完成的。
使用对话框:
1. 在要使用的文件中添加 b中生成的对话框类的.h文件,根据对话框类型,
a. 若使用 模态(Modal)对话框( 当对话框显示时,程序暂停,直到关闭这个对话框后,才能继续执行),则使用
CTestDlg dlg;
dlg.DoModal();
b. 若使用 非模态对话框,则使用
// CTestDlg dlg; //dlg.DoModal(); CTestDlg *pDlg = new CTestDlg; pDlg->Create(IDD_DIALOG1,this); pDlg->ShowWindow(SW_SHOW);
2. 编辑控件的访问:
方法:添加完编辑控件后, 右键该控件->Add Variable ,添加与该控件相对应的成员变量(可以是值类型也可以是控件类型),来控制控件。
使用值类型的变量时,若要更新对话框中的控件,则可通过:
a. 使用UpdateData(true); 根据控件上的内容更新变量值;
b. 使用UpdateData(false); 根据变量值更新控件。
如:
void CTest::OnBnClickedOk() { // TODO: Add your control notification handler code here UpdateData(true);//先由控件中的值 更新 变量 sum = n1 + n2; UpdateData(false); //再 根据变量值 更新 控件 }
3. 对话框标题栏中的 关闭 按钮 设置显示方法:右键对话框->Properties->System Menu 设为true.
4. 使用 Radio Button 控件。
a. 先用一个Group-box 盛放这些 Radio Button . 然后对第一个Button的属性->Group 设为 true。表示这些Button 为一个组了,只能选中组中的一个。
b. 为Radio button1 添加一个int 型 成员变量m_Radio,这个变量的值将代表整个Group.(0 -Radio1 1 -Radio2 ....)
b. 要想使第一个Radio Button 默认被选中,可以再OnInitDialog()函数中 添加:
CButton* radio=(CButton*)GetDlgItem(IDC_Income); //设置Radio Button1被选中 radio->SetCheck(1);
使得 Radio Button1 被选中。其他方法请看:http://paulfzm.iteye.com/blog/967691
5. 设置 Text Control 显示的值:
GetDlgItem(IDC_Text1 )->SetWindowText("收入:");
6. 显示提示框:
AfxMessageBox("XXXX !");
7. 有关 List Control 的用法,可参考 :http://blog.csdn.net/seven407/article/details/5391521
要得到List Control中一行的值,可以
a . 先在 OnInitDialog()中添加:m_listCtrl.SetExtendedStyle( m_listCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT );
使得默认的ListControl只能点击第一列来选中想选中的项,变为点击后直接自动选择一行的功能。
b. 然后使用
POSITION ps = m_listCtrl.GetFirstSelectedItemPosition();//先获得首行的位置 nIndex = m_listCtrl.GetNextSelectedItem(ps);//再获得所选行的下标
8. Edit Control 换行:在字符串中使用 \r\n 而不是 \n.