Maximieren und Minimieren deaktivieren zur Laufzeit ???



  • Ich brauch mal eine kleine Hilfe..... :xmas1: :xmas2:
    Bin noch ein Anfänger 🙄 Grünschnabel

    Ich möchte zur Laufzeit die Min-und Max Button des Systemmenüs der
    Dialogbox deaktivieren und aktivieren.
    Folgendes Beispiel mit Schließen-Kreuz geht prima:

    [b]CMenu* p_Menu =AfxGetMainWnd()->GetSystemMenu(FALSE); 
    p_Menu->EnableMenuItem(SC_CLOSE, MF_GRAYED); [/b]
    

    Deaktiviert das Schließen-Kreuz.
    Habe ich von www.coding-help.de sehr gut für Anfänger

    Folgender Code geht aber nicht für Max oder Min.

    CMenu* p_Menu =AfxGetMainWnd()->GetSystemMenu(FALSE); 
    p_Menu->EnableMenuItem(SC_MAXIMIZE, MF_GRAYED);  ...oder SC_ZOOM
    

    😕

    Da gibt es doch bestimmt wieder einen Trick...
    In meinen Büchern finde ich mal wieder keine Hilfe.
    Schon mal vielen Dank.

    Viele Grüße aus Gütersloh
    Thomas 🙂
    tsp2002



  • Du kannst den Code in jeder Funktion ausführen und nicht nur in der InitDialog 🙄 !
    Wenn du z.B. die WM_CLOSE Nachricht erhälst könntest du die Anweisung starten.

    Und für MAXIMIZE: Schau dir mal SetMenuItemInfo() in der MSDN an.
    Weiß allerdings nicht ob das klappt 😕 .



  • versuch es mal mit ...

    AfxGetMainWnd()->ModifyStyle ( 0, WS_MAXIMIZEBOX );
    //Um MAXIMIZEBOX zu aktivieren
    
    AfxGetMainWnd()->ModifyStyle ( WS_MAXIMIZEBOX, 0 );
    //Um MAXIMIZEBOX zu deaktivieren
    


  • oder die beiden Nachrichten abfangen und mit nem if testen, obs an die Elternklassen weitergereicht wird oder nicht, wäre die Holzhammer-Methode^^
    Ne set-Methode zum Ein/- Aussschalten ist natürlich schöner



  • Hallo :xmas1: :xmas2:
    Vielen Dank für Eure Hilfe....

    // Maximieren deaktivieren: 
    AfxGetMainWnd()->ModifyStyle (WS_MAXIMIZEBOX, 0 ); 
    CMenu* p_Menu =AfxGetMainWnd()->GetSystemMenu(FALSE); 
    p_Menu->EnableMenuItem(SC_MAXIMIZE, MF_GRAYED); 
    
    // Maximieren aktivieren 
    AfxGetMainWnd()->ModifyStyle(0,WS_MAXIMIZEBOX); 
    CMenu* pSysMenu = AfxGetMainWnd()->GetSystemMenu(FALSE); 
    pSysMenu->EnableMenuItem(SC_MAXIMIZE, MF_ENABLED); 
    
    // Minimieren deaktivieren 
    AfxGetMainWnd()->ModifyStyle (WS_MINIMIZEBOX, 0 ); 
    CMenu* p_Menu =AfxGetMainWnd()->GetSystemMenu(FALSE); 
    p_Menu->EnableMenuItem(SC_MAXIMIZE, MF_GRAYED); 
    
    // Minimieren aktivieren 
    AfxGetMainWnd()->ModifyStyle(0,WS_MINIMIZEBOX); 
    CMenu* pSysMenu = AfxGetMainWnd()->GetSystemMenu(FALSE); 
    pSysMenu->EnableMenuItem(SC_MAXIMIZE, MF_ENABLED);
    

    Besonders hat mir auch der ausführliche Code von
    www.coding-help.de geholfen...
    schaut mal auf diese Seite....sehr gut für Anfänger 🙄

    Merry Christmas to All :xmas1:


Anmelden zum Antworten