简单概要
从这篇文章起,我们就渐渐来认识MFC里的 消息机制 。
预备知识
新建工程
新建一个工程,取名为“CloseTip”使用 unicode 编码并将界面调整为如下图所示:
添加事件
具体添加步骤见下图:![]()
![]()
![]()
检查变更
添加代码
![]()
void CCloseTipDlg::OnClose() { // 弹出一个提示框,可以让用户来选择“是/否” // 如果用户选择的为“是”就退出程序,否则不退出程序。 // IDNO ==> 为选择“否” // MessageBox详解:http://msdn.microsoft.com/en-us/library/ms645505(v=vs.85).aspx if (MessageBox(L"您确定要退出程序吗?",L"友情提示",MB_ICONINFORMATION|MB_YESNO) == IDNO) // 结束这个函数,使程序不会执行“CDialogEx::OnClose();”,也就是下面的一条语句。 return; // 当程序调用这个方法的时候,程序就会退出 CDialogEx::OnClose(); }
编译运行
重点要点
MFC程序退出的方法不只只有这一种,还有很多种,但是正常程序退出系统都会向程序发送一个 WM_CLOSE 消息,程序在得到 WM_CLOSE 消息之后就会判断程序中的“ ON_WM_CLOSE()”消息宏,如果存在此消息宏程序就到自动找到程序的“ OnClose()”函数,然后执行它。
课后练习
在 “添加事件” 中添加了 WM_CLOSE 消息,可以看到在 WM_CLOSE 消息下方有一个 WM_CREATE 事件,那么这个事件是什么作用呢?来吧,试试吧。