首先介紹一下WindowProc函數。
函數功能:該函數是一個應用程序定義的函數。它處理發送給窗口的消息。WNDPROC類型定義了一個指向該回調函數的指針。WindowProc是用於應用程序定義函數的占位符。
函數原型:
LRESULT CALLBACK WindowProc (HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM IParam);
參數:
hwnd:指向窗口的句柄。
uMsg:指定消息類型。
wParam:指定其余的、消息特定的信息。該參數的內容與UMsg參數值有關。
IParam:指定其余的、消息特定的信息。該參數的內容與uMsg參數值有關。
返回值:返回值就是消息處理結果,它與發送的消息有關。
通過重寫這個函數,我們可以自定義窗口消息響應。
-
LRESULT CCheckUpdatealpha1Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: 在此添加專用代碼和/或調用基類 switch(message) { //如果是系統消息 case WM_SYSCOMMAND: { if(wParam==SC_CLOSE) { //接收到最小化消息時主窗口隱藏 AfxGetApp()->m_pMainWnd->ShowWindow(SW_HIDE); return 0; } break; } } return CDialog::WindowProc(message, wParam, lParam); }
通過這段代碼,當單擊右上角的關閉按鈕式,窗口只是隱藏了,而不是銷毀。