Fenster minimiert sich ungewohlt



  • Hallo

    Ich habe (mal wieder) ein Problem:

    Mein Programm hat ein Mainwindow das beim Programmstart gestartet wird. Dieses Window öffnet wenn der User etwas einstellen will ein neues Fenster mit Optionen (ist ein richtiges Fenster kein Dialog!!). Wenn der User jetzt aber das Fenster wieder schließt minimiert sich das Mainwindow. Das kommische ist nur das das wenn mann auf "Abbrechen" im Einstellungsdialog drückt nicht passiert. Hier der Programmcode aus dem WM_COMMAND abschnitt der zu dem Button gehört:

    case BT_OK:
        				if(BST_CHECKED == IsDlgButtonChecked(hsprachebox, RB_FREMDSPRACHE))
        				{
        					options.richtung = 0;
        				}
        				else
        				{
        					options.richtung = 1;
        				}
            			if(BST_CHECKED == IsDlgButtonChecked(hkorrekturbox,RB_EXAKT))
        				{    					
        					options.abf_methode = 0;
        				}
            			else
               			{
               				options.abf_methode = 1;
                  		}
                  		neu_laden = MessageBox(hwnd,"Die Lektion muss geschlossen werden, damit die Einstellungen wirksam werden.\n\
                    	Möchten sie das jetzt tun?","Lektion schließen",MB_YESNO | MB_ICONQUESTION);                	
                    	if(neu_laden == IDYES)
                    	{
                    		SendMessage((HWND) GetWindowLong(hwnd, GWL_HWNDPARENT),UM_LEKTION_UNLOAD,0,0);
                    	}
                    	DestroyWindow(hwnd);      				
        				break;
    

    Kann mir jemmand helfen, das ist nämlich ziemlich nervig man denkt immer das Programm ist abgestüzt ...



  • Mach mal bei dem Fenster mit den Optionen noch ein WS_POPUP dazu.



  • ok es funzt,
    aber warum funktioniert es auch ohne minimieren wenn ich nur DestroyWindow() (<- der Abbrechenbutton) aufrufe???



  • Hat was mit der MessageBox zu tun.
    Hatte das Problem auch mal. Dabei wurde das Fenster aber nicht minimiert, sondern kam nur in den Hintergrund.



  • Wenn du bei der MessageBox NULL anstelle von hwnd angiebst, dürfte das Problem auch behoben sein (UNGETESTET).


Anmelden zum Antworten