上次小弟提出一个问题:希望在关闭程序时,先弹出MessageBox询问是否确定要退出,确认后再退出程序。此功能在“菜单”的“退出”中实现了,可是不知怎样对窗口右上角的“关闭”按钮进行编程?高手告知:关闭按钮发出WM_SYSCOMMAND消息,wParam参数是SC_CLOSE,响应这个消息就行。如果响应WM_CLOSE消息更好,不论“退出”菜单还是关闭按钮,都先发出WM_CLOSE,如果WM_CLOSE不掉DestroyWindow或者 DefWindowProc,窗口就不会关闭。
那我的新问题是:怎样才能让WM_CLOSE不调用DestroyWindow或者DefWindowProc,使窗口在MessageBox前不会关闭?虽然上面高手的指点让小弟受益匪浅,可是问题还是没有解决!
那我的新问题是:怎样才能让WM_CLOSE不调用DestroyWindow或者DefWindowProc,使窗口在MessageBox前不会关闭?虽然上面高手的指点让小弟受益匪浅,可是问题还是没有解决!
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_SYSCOMMAND)
{
if((wParam == *****))//*****为WM_DESTORY的值,自己查是多少吧
return 0;
}
return CFrameWnd::WindowProc(message, wParam, lParam);
}
LRESULT CMainFrame::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_SYSCOMMAND)
{
if((wParam==SC_CLOSE))
MessageBox("真要退出吗?");
} return CFrameWnd::WindowProc(message, wParam, lParam);
}再次感谢CSDN和renjing的帮助!