我在程序中对ID_APP_EXIT重写了函数,使得程序退出时必须先通过密码验证才能退出。但考虑到用户可以点击窗体的右上角的关闭键仍可以退出,于是我用下面代码禁止关闭功能:
//获得系统菜单
CMenu *pMenu=GetSystemMenu(FALSE); //获得关闭按钮的ID
int x=pMenu->GetMenuItemCount();
UINT pID=pMenu->GetMenuItemID(x-1); //使关闭按钮无效
pMenu->EnableMenuItem(pID, MF_DISABLED);
但是令人失望的是还是可以通过Alt-F4来结束本程序。也就是说,右上角的关闭键和Alt-F4都不会响应ID_APP_EXIT的消息。高手们,为什么?
//获得系统菜单
CMenu *pMenu=GetSystemMenu(FALSE); //获得关闭按钮的ID
int x=pMenu->GetMenuItemCount();
UINT pID=pMenu->GetMenuItemID(x-1); //使关闭按钮无效
pMenu->EnableMenuItem(pID, MF_DISABLED);
但是令人失望的是还是可以通过Alt-F4来结束本程序。也就是说,右上角的关闭键和Alt-F4都不会响应ID_APP_EXIT的消息。高手们,为什么?
if(nID==SC_CLOSE)
{
//在这里加入你想处理的东西
}
ID_APP_EXIT,Alt+f4,右上角的关闭按钮都是要关闭窗口。所以,相应关闭窗口的消息就行了。