windows - Sådan lukker du dialogboksen (barn) uden luk hoveddialogboksen (forælder)

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en overordnet dialog, denne dialog har menu, i denne menu (Hjælp-> om).

Når jeg klikker på det valgte valg, skal du se om DialogBox.

Jeg vil have, hvis jeg klikker på Ok eller Luk (X) -knappen, lukker denne dialogboks kun hoveddialogboksen.


Dette er mit forsøg:


// ------------- 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;
}

Bedste reference


Du skal ikke ringe PostQuitMessage i WM\_DESTROY inde i AboutDlgFunc. Dette forårsager i det væsentlige hele programmet at afslutte.