Wie kann man trotz Dialogbox auf Main Window zugreifen



  • Mit Sicherheit eine schon oft gestellte Frage, habe aber nicht dazu gefunden.

    Ich öffne Durch einen Menupunkt eine Dialogbox. Wenn diese offen ist kann man auf eine anderen
    Menupunkt, bzw das Hauptfenster nicht zugreifen.
    Wie kann ich es erreichen das trotz geöffneter Dialogbox das Hauptfenster mit seinen Elementen erreichbar ist

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
      int wmId, wmEvent;
    
      hMenu=GetMenu(hWnd);
      switch( message )
      {
        case WM_INITDIALOG:
          break;
    
        case WM_COMMAND:
          wmId    = LOWORD(wParam);
          wmEvent = HIWORD(wParam);
    		      // Menüauswahlen analysieren:
        switch( wmId )
          case  ID_ENGINERING_RDI:
    	Print2EndofLogBox("Start Working RDI direct");
    	DialogBox(hInst, (LPCTSTR)IDD_RDI, hWnd, (DLGPROC) EngRDI);
    	break;
    

    Jetzt schon mal danke für die Antwort



  • DialogBox erzeugt einen modalen Dialog -> einfach stattdessen CreateDialog verwenden

    MSDN-Library schrieb:

    A modal dialog box requires the user to close the dialog box before activating another window in the application. However, the user can activate windows in different applications. A modeless dialog box does not require an immediate response from the user. It is similar to a main window containing controls.



  • Danke, es funktioniert.

    Aber jetzt die nächste dumme Frage. Die so erzeugte Dialogbox überlapped das Main Window teilweise,
    wie bekomme ich das Main Window in den Vordergrund wenn ich draufklicke und wie bekomme ich den
    Dialog in den Vordergrund wenn ich draufklicke.

    Entschuldigung für die dummen Fragen und vielen Dank



  • bin mir gerade etwas unsicher, aber geht das mit deinem Dialog überhaupt (falls er es nicht schon von alleine macht) 🙄



  • Sollte gehen in dem Du bei DialogBox als dritten Parameter NULL angibst anstatt Dein FensterHandle...


Anmelden zum Antworten