项目的创建
找到【MFC 应用】并选择,点击下一步。
设置项目地址和名称,点击创建。
在弹出的窗口中,把应用程序类型改成【基于对话框】,点击完成。
耐心等待后,弹出了如下界面,那么恭喜你完成第一步,项目就创建完成了!
最后,我们要对项目做基本的设置。
右键项目,点击属性,进行修改。
窗口内控件的布置
首先,我们把【工具箱】调出来。
然后我们把需要的控件拖入窗口,如下。
试着点运行可以看到我们窗口的控件已经显示出来了。
控件的响应
接着我们要对它构建基本的逻辑:
点击关闭——>关闭窗口。
点击登录——>获取密码框内的文本,与正确密码做对比。
如果与正确密码匹配,弹出【关于】窗口;
否则显示密码错误。
控件【关闭】
首先双击控件【关闭】,或者右键,选择添加事件处理程序。
接着会弹出一段代码(函数名字不同没事)。
我们往里面写入如下代码(关闭窗口的意思)。
CDialogEx::OnCancel(); // OnOK也实现同样效果
控件【登录】
同理,双击控件【登录】,或者右键,选择添加事件处理程序。
这是弹出的函数(名字不同没事)
我们想要获取输入框的内容,怎么获取呢?
我们选择输入框,右键,点击【添加变量】。
在弹出的对话框中,我们填写号名称,点击完成。
回到代码中,我们已经可以获取输入内容了。
获取输入内容后,判断是否符合正确密码。
void CLoginDlg::OnBnClickedOk()
{
CString str;
m_edit.GetWindowText(str);
if (str == "121231234") {
CAboutDlg dlg;
dlg.DoModal(); // 弹出关于窗口
}
else {
MessageBox("密码错误!", "提示", MB_ICONERROR| MB_OK);
}
}
最后,我们给输入框设置为密码框。
运行效果
疑难解答
不小心把对话框编辑器关掉了怎么办?
点击资源视图(如果没有到菜单、视图中找添加)找到对话框。
为什么你的按钮是方形的(如果你也是Win11。或者你是Win10,但是按钮控件没有渐变效果)?
这是你的。
这是我的。
因为使用多字节系统默认使用老版本控件主题。
在代码里加入这几行就行。
#pragma comment(linker, "\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version = '6.0.0.0' \
processorArchitecture = '*' publicKeyToken = '6595b64144ccf1df' language = '*'\"")