2012-02-25 25 views
1

このダイアログには、親ダイアログが1つあります。このダイアログにはメニューがあります(ヘルプ - >について)。
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; 
} 

答えて

3

AboutDlgFuncWM_DESTROYPostQuitMessageを呼び出さないでください。これは基本的にプログラム全体を終了させます。

+0

非常に良いMr pezcode、そうです、ありがとう –

関連する問題