1

親ダイアログが 1 つあります。このダイアログには、このメニュー (ヘルプ -> について) にメニューがあります。
about の選択をクリックすると、about DialogBox が表示されます。
[OK] または [閉じる](X) ボタンをクリックすると、メイン ダイアログ ボックスではなく、このダイアログ ボックスのみが閉じます。

これは私の試みです:

// ------------- Main dialog function
BOOL CALLBACK DlgFunc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp){
    switch(msg){
    case WM_COMMAND:
        switch(LOWORD(wp)){
        case IDM_HABOUT: // Here, I set when I click on help selection in the menu creates (about dialogbox)
            DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_AboutDlg), hwnd, AboutDlgFunc);
            break;
        }
        break;
    case WM_CLOSE:
        DestroyWindow(hwnd);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return false;
    }
    return true;
}


// ------------- About dialog function
BOOL CALLBACK AboutDlgFunc(HWND HabutWnd, UINT msg, WPARAM wp, LPARAM lp){
    switch(msg){
    case WM_COMMAND:
        if(LOWORD(wp) == IDOK)
            EndDialog(HabutWnd,0);
        break;
    case WM_CLOSE:
        EndDialog(HabutWnd,0);
        break;
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return false;
    }
    return true;
}
4

1 に答える 1

3

中に電話PostQuitMessageしないでください。これにより、基本的にプログラム全体が終了します。WM_DESTROYAboutDlgFunc

于 2012-02-25T15:08:09.300 に答える