【问题标题】:How to close dialogbox(Child) without close the Main dialog(parent)如何在不关闭主对话框(父)的情况下关闭对话框(子)
【发布时间】:2012-02-25 15:05:16
【问题描述】:

我有一个父对话框,这个对话框有菜单,在这个菜单中(帮助->关于)。
当我点击关于选择时,显示关于对话框。
我想如果我点击确定或关闭(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;
}

【问题讨论】:

    标签: windows winapi win32gui


    【解决方案1】:

    不要在WM_DESTROY 中调用PostQuitMessageAboutDlgFunc 中。这实际上会导致整个程序退出。

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-08
      相关资源
      最近更新 更多