代码:
void CDVDOpenDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
if(nID==SC_MINIMIZE)
OnMin();
else
CDialog::OnSysCommand(nID, lParam);
}
}
明明没处理SC_CLOSE 吗!
void CDVDOpenDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
if(nID==SC_MINIMIZE)
OnMin();
else
CDialog::OnSysCommand(nID, lParam);
}
}
明明没处理SC_CLOSE 吗!
解决方案 »
- 调用dll文件时会运行dll的程序,如何卸载结束dll的运行,而继续主程序其他的功能??
- VS2010 MFC使用Excel出错
- VC里,我按sdk的说明调用函数,为什么不能打开实时监视?
- ADO中recordset = command->Execute() 后, recordest的RecordCount不能得到吗?
- [MFC]对话框并没有定义WM_CLOSE消息的处理函数,当点击对话框右上角的关闭按钮时为什么能关闭对话框?
- 我写了一个ocx,现在要写它的测试程序!分不够就加!急急急急急急急急急急!
- 《Win32多线程程式设计》哪里有下载
- 进程内com和进程外com有什么区别?
- 各位大侠:看看这个问题:
- 一个困扰我多年的问题
- 为什么有些函数没有包含头文件也能编译通过?而且最为要命的是它那里会出错。
- 我可以用__VA_ARGS__来写CString字符串吗?
{ //当最小化窗口时,隐藏在任务栏托盘中
if( (nID & 0xFFF0) == SC_MINIMIZE)
{
ShowWindow(SW_HIDE);
return;
} CFrameWnd::OnSysCommand(nID, lParam);
}
只在OnMin设一个会的
奇怪的是你在OnMin和 CDialog::OnSysCommand(nID, lParam); 都设断点是点插号会运行CDialog::……无果!
SC_MINIMIZE=0xF020
SC_CLOSE=0xF060
nID&0xFFF0 后都等于0
因此第一个分支总被调用?你是不是每次都看到about?
//加上看看你点关闭的时候会不会出现对话框??
if( (nID & 0xFFF0) == SC_CLOSE)
{
MessageBox("ok");
return;
}