CframeWnd(CMainFrame的父类)间接会调用CWnd::DestroyWindow;它首先向CMyView发送WM_DESTORY和WM_NCDESTROY消息,并引发相应的处理函数;然后向CMyDlg发送WM_DESTORY和WM_NCDESTROY消息,并引发相应的处理函数;然后向CMyWnd发送WM_DESTORY和WM_NCDESTROY消息,并引发相应的处理函数。 具体的执行顺序是: 1. 调用CMainFrame:...
在一般情况下,在程序中不必直接调用DestroyWindow来删除窗口,因为MFC会自动调用DestroyWindow来删除窗口。例如,当用户退出应用程序时,会产生WM_CLOSE消息,该消息会导致MFC自动调用CWnd::DestroyWindow来删除主框架窗口,当用户在对话框内按了OK或Cancel按钮时,MFC会自动调用CWnd::DestroyWindow来删除对话框及其控件。 窗口对...
WM_NCCREATE = $0081 //当某个窗口第一次被创建时,此消息在WM_CREATE消息发送前发送; WM_NCDESTROY= $0082 //此消息通知某个窗口,非客户区正在销毁 WM_NCCALCSIZE = $0083 //当某个窗口的客户区域必须被核算时发送此消息 WM_NCHITTEST= $0084 //移动鼠标,按住或释放鼠标时发生 WM_NCPAINT= $0085 //程...
1. 手工调用pWnd->DestroyWindow(); // 一般在对话框类中的OnCancle函数中postMessage(WM_DESTORY)或者直接调用 2. DestroyWindow会发送WM_DESTROY; 3. WM_DESTROY对应的消息处理函数是OnDestroy(); 4. DestroyWindow会发送WM_NCDESTROY; 5. WM_NCDESTROY对应的消息处理函数是OnNcDestroy; 6. OnNcDestroy最后...
7. PostNcDestroy经常被用户重载以提供释放内存操作。例如可以使用delete this; 通过这种方式,窗口对象对应的窗口和窗口对象本身都被释放了。 如果含有子窗口: 如果含有子窗口,则调用父窗口的DestroyWindow时,它会向子窗口发送WM_DESTROY和WM_NCDESTROY消息。
case WM_LBUTTONDOWN: case WM_PAINT: case WM_CLOSE: case WM_DESTROY: default: return DefWindowProc(hwnd, uMsg, wParam, lParam);//如果没有匹配的消息就调用默认窗口过程处理,这一项是必须的 } } 1.5 第一个Windows应用程序 #include<Windows.h> ...
注意, 父窗口是在子窗口被销毁之前收到 WM_DESTROY 消息, 在子窗口被销毁之后收到 WM_NCDESTROY 消息.两个销毁消息, 一个在开头, 一个在结尾, 这意味着, 对于你自己的模块, 你可以通过处理相应的消息来执行清理操作.例如, 如果有些东西必须在开头清理, 那么你可以使用 WM_DESTROY 消息.WM_NC...
1.OnClose() 消息响应函数,响应窗口的WM_CLOSE消息,当关闭按钮被单击的时候发送此消息 2.OnDestroy() 消息响应函数,响应窗口的WM_DESTROY消息,当一个窗口将被销毁时,发送此消息 3.OnNcDestroy() 消息响应函数,响应窗口的WM_NCDESTROY消息,当一个窗口被销毁后发送此消息 ...
WM_CREATE 创建一个窗口 WM_DESTROY 当一个窗口被破坏时发送 WM_MOVE 移动一个窗口 WM_SIZE 改变一个窗口的大小 WM_ACTIVATE 一个窗口被激活或失去激活状态 WM_SETFOCUS 一个窗口获得焦点 WM_KILLFOCUS 一个窗口失去焦点 WM_ENABLE 一个窗口改变成Enable状态 ...
8 case WM_COMMAND: 9 break; 10 case WM_PAINT: 11 hdc = BeginPaint(hWnd, &ps); 12 // TODO: 在此添加任意绘图代码... 13 EndPaint(hWnd, &ps); 14 break; 15 case WM_DESTROY: 16 PostQuitMessage(0); 17 break; 18 default: 19 return DefWindowProc(hWnd, message, wParam, lParam); ...