一.添加消息
MFC和win32不同的一点是MFC采用的是消息的映射机制,即每一个消息都和处理的函数做了映射,我们可以通过查找的方式来得到消息的对应的函数,当然MFC提供了一个非常简便的方法,我们通过类视图点击xxxdlg类的属性可以看到以下
//在头文件还要声明一个消息宏 BEGIN_MESSAGE_MAP(CDialogDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_WM_LBUTTONDOWN() END_MESSAGE_MAP()
选择我们所需要的消息即可,然后代码区即可自动的得到相应的代码,当我们不需要时也可以在这里直接删除
二.创建新的对话框(模态,非模态),并通过按键进行打开
要添加新的对话框首先要添加它的UI视图,先进入资源管理器添加新的对话框,然后在新建的UI对话框点击右键然后选择添加类(我们添加的类名称一般情况下都要加上C)
然后我们添加按键,然后为其添加事件,结果如下(模态对话框是阻塞,非模态是非阻塞而且非模态只能创建一次不能重复创建):
//模态对话框的点击事件(阻塞) void CDialogDlg::OnBnClickedButton1() { // TODO: 在此添加控件通知处理程序代码
CdigExec exec; exec.DoModal(); } //非模态对话框 void CDialogDlg::OnBnClickedButton2() { // TODO: 在此添加控件通知处理程序代码 if (ifcreat == 0) { ifcreat = 1; dlg.Create(IDD_EXEC);} dlg.ShowWindow(SW_SHOWNORMAL); }
三.为静态文本添加变量
首先在MFC中ID的后面是static的均不可以设置变量,所以我们首当其冲的就是现将静态文本的ID尾部改为非static,然后就可以顺利的对静态文本进行操作了.
CString str=L"你是猪"; statictext.GetWindowTextW(str);//得到窗口的文字,对于所有的控件都适用 MessageBox(str); statictext.SetWindowTextW(str);//设置窗口的文字,对于所有的控件都适用 CdigExec exec;
//还有一些常用的类方法
button.EnableWindow(false);//使得按键按下
四.添加文本控制器
我们添加文本控制器后,当我们选中文本控制器后点击enter会直接退出,如果我们不想要这种效果我们可以有两种选择,如下图所示(一种在控件设置属性中设置,另一种在重写对话框的ONOK(是一种确定的退出),如图后找到ONOK)
五.添加变量的控件类型(一般情况下),值类型
statictext2 = "略略略"; UpdateData(FALSE);//将成员变量的值赋给控件,如果时候TRUE将控件的内容更新显示到成员变量