Discussion:
Wie "Fenster-Schliessen"-Schalter vermeiden?
(zu alt für eine Antwort)
ha
2015-07-19 19:28:58 UTC
Permalink
Hallo

Ich arbeite an einem C-Programm, welches einen Dialog öffnet. Ich
brauche dabei aber lediglich den "Minimieren"-Schalter. Wie kann
ich den "Fenster-Schliessen"-Schalter (das X) verhindern? Der wird
mir nämlich mit der Eigenschaft "Systemmenü" gleich mitgeliefert.
Und ohne diese Eigenschaft werden gar keine Fensterschalter angezeigt.

Ich möchte nicht unbedingt eine weitere Schaltfläche in den Dialog
zu Minimieren einbauen.
Olaf Schmitt
2015-07-19 20:41:48 UTC
Permalink
Post by ha
Hallo
Ich arbeite an einem C-Programm, welches einen Dialog öffnet. Ich
brauche dabei aber lediglich den "Minimieren"-Schalter. Wie kann
ich den "Fenster-Schliessen"-Schalter (das X) verhindern? Der wird
mir nämlich mit der Eigenschaft "Systemmenü" gleich mitgeliefert.
Und ohne diese Eigenschaft werden gar keine Fensterschalter angezeigt.
Das hast du das gleiche Problem wie ich in C#, da geht es nämlich auch
nicht.
Das liegt an "Forms".
Jetzt, wo ich das unter XAML mache, da habe ich deutlich bessere
Möglichkeiten.
Aber das ist eben C#.
Einige Sachen programmiere ich auch in CPP, aber eben auch in C#.
Post by ha
Ich möchte nicht unbedingt eine weitere Schaltfläche in den Dialog
zu Minimieren einbauen.
Das ist jetzt aber echt kompliziert....hehe
Ich habe es jedenfalls so gelöst.
Ich brauche auch einen Help Button dazu.

Ansonsten fange den Close ab.
Entweder bei/mit WM_SYSCOMMAND, oder OnClose.


Olaf
ha
2015-07-19 22:30:38 UTC
Permalink
Post by Olaf Schmitt
Ansonsten fange den Close ab.
Entweder bei/mit WM_SYSCOMMAND, oder OnClose.
Das ist nicht das Problem. Im Grunde ist es nur
"Design-mässig / optisch" unerwünscht. Zumindest in C
brauche ich da nichts abzufangen, weil ich mich explizit
um WM_CLOSE kümmern müsste.
Olaf Schmitt
2015-07-20 02:54:00 UTC
Permalink
Post by ha
Post by Olaf Schmitt
Ansonsten fange den Close ab.
Entweder bei/mit WM_SYSCOMMAND, oder OnClose.
Das ist nicht das Problem. Im Grunde ist es nur
"Design-mässig / optisch" unerwünscht. Zumindest in C
brauche ich da nichts abzufangen, weil ich mich explizit
um WM_CLOSE kümmern müsste.
Da du FORMS benutzt, wirst du damit leben müssen.




Olaf
ha
2015-07-20 17:55:43 UTC
Permalink
Post by Olaf Schmitt
Da du FORMS benutzt, wirst du damit leben müssen.
Bislang brachte ich "FORMS" eher mit C# und VB in Verbindung und dachte,
C / C++ baut auf anderer (Ressourcen)Technik auf.

Aber die Funkstille im Thread scheint dich zu bestätigen, das es anders
nicht geht. Danke für die Antwort.
Uwe Sieber
2015-07-27 10:54:30 UTC
Permalink
Post by ha
Hallo
Ich arbeite an einem C-Programm, welches einen Dialog öffnet. Ich
brauche dabei aber lediglich den "Minimieren"-Schalter. Wie kann
ich den "Fenster-Schliessen"-Schalter (das X) verhindern? Der wird
mir nämlich mit der Eigenschaft "Systemmenü" gleich mitgeliefert.
Und ohne diese Eigenschaft werden gar keine Fensterschalter angezeigt.
Ich möchte nicht unbedingt eine weitere Schaltfläche in den Dialog
zu Minimieren einbauen.
void DisableCloseButton(HWND hwnd)
{
HMENU hMenu = GetSystemMenu(hwnd, FALSE);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED);
}
ha
2015-07-27 14:06:59 UTC
Permalink
Post by Uwe Sieber
HMENU hMenu = GetSystemMenu(hwnd, FALSE);
EnableMenuItem(hMenu, SC_CLOSE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED);
Danke für den Tip. Das wäre eine weitere Notlösung. Was MS
noch einbauen könnte, wäre ein MF_HIDDEN-Flag.

Lesen Sie weiter auf narkive:
Loading...