ソフトウェア開発 Win32プログラミング

Escキーで閉じないダイアログ

戻る


Escキーで閉じないダイアログの作り方を以下に示す。

BOOL CALLBACK DialogProc(
    HWND  hDlg,
    UINT  uMsg,
    WPARAM  wParam,
    LPARAM  lParam)
{
    switch(uMsg)
    {
    case WM_INITDIALOG:
        ...
        return TRUE;
    case WM_SYSCOMMAND:
        if(wParam == SC_CLOSE)
        {
            EndDialog(hDlg, IDCLOSE);
            break;
        }
        break;
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:
            DoIt(hDlg);
            break;
        }
        break;
    }
    return FALSE;
}

要するに、IDCANCELを処理しない代わりにWM_SYSCOMMANDを処理している。 モーダルダイアログを閉じる処理は EndDialog API が行う。


戻る

©片山博文MZ
katayama.hirofumi.mz@gmail.com

inserted by FC2 system