在CMainFrame类中响应WM_CLOSE消息,试试如下代码:void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
MessageBox("abc","Message");
CFrameWnd::OnClose();
}
解决方案 »
- vc2008 下使用stl vector内存会慢慢涨
- VC 如何关闭重启过程中由另一程序弹出的确认对话框(messagebox)
- 关于CoCreateInstance的问题
- BoundsChecker for vc2005 在哪有?
- 如何统一主程序与子对话框的界面风格?
- 处理一个比较大的文本文件(5M左右),其中有很多重复的行,要去掉这些重复行,有没有什么好的算法?
- 带磁卡槽的键盘,磁卡要多少钱?
- 如何找到CRichEditView编辑光标所在位置的像素点
- 向工具栏(CTOOLBAR)中添加自己的按钮(如:ID_MYBUTTON),为何在属性列表中的事件中没有出现新增的资源ID呢
- 请问 我现在有摄像头传来的16进制完整数据 怎么把这一数据变成jpg图片显示出来
- 关于C语言和UNIX系统的问题
- 如何用VC实现显示桌面,就像WINDOWS的"显示桌面"工具一样
用classwizard添加消息WM_DESTROY
void CDialogkey::OnDestroy()
{ MessageBox("关闭窗口");
CDialog::OnDestroy();
// TODO: Add your message handler code here
}
if(CWnd::OnNcHitTest()==HTCLOSE)
{
//在下面添加你的相应代码
}
在调用父类OnClose 以后写的代码将不予执行,
如:void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
CFrameWnd::OnClose();MessageBox("abc","Message");//不能执行
}
在WM_DESTROY 中的程序虽然执行,但此时主窗口已关闭,有兴趣的朋友可以探讨以下。
...
//Disable close button
CMenu *pSysMenu = GetSystemMenu(FALSE);
ASSERT(pSysMenu != NULL);
VERIFY(pSysMenu->RemoveMenu(SC_CLOSE, MF_BYCOMMAND));
...