WM 建立

在視窗的 CreateWindowEx 呼叫期間,WM_CREATE 訊息將傳送到你的視窗過程。lp 引數包含一個指向 CREATESTRUCT 的指標,該指標包含傳遞給 CreateWindowEx 的引數。如果應用程式從 WM_CREATE 返回 0,則建立視窗。如果應用程式返回 -1,則取消建立。

LRESULT CALLBACK winproc(HWND hwnd, UINT wm, WPARAM wp, LPARAM lp)
{
    switch (wm) {
        case WM_CREATE:
            CREATESTRUCT *cs = (CREATESTRUCT *) lp;
            if (MessageBox(hwnd, 
                "Do you want to continue creating the window?", "", MB_YESNO)  
                                         == IDYES) {
                /* create window controls */
                return 0;
            }
            /* cancel creation */
            return -1;
    }
    return DefWindowProc(hwnd, wm, wp, lp);
}