Hallo,
vielleicht kann mir jemand helfen. Ich würde gern (auf einfache Weise) die Schriftart für ein komplettes PopUp-Menü ändern. Also, das Menü besteht bereits. Gibt es eine Möglichkeit, evtl. sogar mit nur einem Befehl, die Schriftart aller Einträge mit einem mal zu ändern?
Mittels WinAPI wär auch ok, da das Programm ausschließlich unter Windows laufen wird.
Vielen Dank schon mal...
Schriftart für PopUp-Menü
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
Mit 99.9%iger Sicherheit kann ich dir sagen das sowas mit normalen Windows Einstellungen nicht möglich ist. Was du aber machen kannst ist dir ein Ownerdraw Menu zu basteln, dann kannst du jeden Schrifttyp verwenden den du willst. Nachteil ist das du für graphische Darstellung selbst verantwortlich bist.
Guckst du hier: Creating Owner-Drawn Menu Items
Guckst du hier: Creating Owner-Drawn Menu Items
- Fluid Byte
- Beiträge: 3110
- Registriert: 27.09.2006 22:06
- Wohnort: Berlin, Mitte
- Rechter Mauskilck auf DesktopKann man denn die Schriftart aller Menüs der derzeitigen Windowssitzung mit einem mal ändern?
- "Eigenschaften"
- "Darstellung"
- "Erweitert"
- Dropdown Menu: "Element"
- Den Punkt "Menü" aus der Liste wählen und gewünschten Schrifttyp aussuchen
Allerdings sei erwähnt das dies eine globale Einstellung ist. Sie gilt also für alle Programme und bleibt auch bestehen wenn du den Rechner erneut startest. Des weiteren habe ich im Moment keinen entsprechenden API Befehl gefunden aber selbst wenn, würde das höchst wahrscheinlich wieder eine globale Änderung sein.
Wenn du ein individuelles Menu mit einem frei gewählten Schrifttyp benutzen willst (unabhängig von der momentanen Windows Einstellung) solltest du es mit Ownerdraw Menus versuchen.
Fluid Byte hat geschrieben:- Rechter Mauskilck auf DesktopKann man denn die Schriftart aller Menüs der derzeitigen Windowssitzung mit einem mal ändern?
- "Eigenschaften"
- "Darstellung"
- "Erweitert"
- Dropdown Menu: "Element"
- Den Punkt "Menü" aus der Liste wählen und gewünschten Schrifttyp aussuchen
Allerdings sei erwähnt das dies eine globale Einstellung ist. Sie gilt also für alle Programme und bleibt auch bestehen wenn du den Rechner erneut startest. Des weiteren habe ich im Moment keinen entsprechenden API Befehl gefunden aber selbst wenn, würde das höchst wahrscheinlich wieder eine globale Änderung sein.
Wenn du ein individuelles Menu mit einem frei gewählten Schrifttyp benutzen willst (unabhängig von der momentanen Windows Einstellung) solltest du es mit Ownerdraw Menus versuchen.

Ich möchte es ja aus dem Code heraus machen. Deswegen hatte ich ja auch angeführt, ob es einen API-Befehl, ähnlich dem SetSysColor_(), gibt.
Und das dies dann eine globale Einstellung wäre, ist mir auch bewusst.
Vielleicht sollte ich erwähnen, dass mein Projekt einen Ersatz des Windows Explorers darstellen wird. Also, diesen komplett ersetzen wird.
Somit ist es sogar mein Plan ist, dass die Einstellungen global sein sollen. Aus diesem Grund wäre auch ein Ownerdraw Menu nicht das, was mir helfen würde. Mit "Menüs der derzeitigen Windowssitzung" meinte ich, dass die Grundeinstellungen, welche ich ja im manuellen Verfahren, durch Benutzung des Eigenschaften-Dialogs z.B., verändern würde, erhalten bleiben. Sprich, wenn ich mein Programm beende, den aktuellen Windows-Benutzer abmelde und mich wieder anmelde, die ursprüngliche Menü-Schriftart wieder angezeigt wird.
Also, gleiches Verfahren wie halt mit SetSysColors_(). Wenn mein Programm gestartet wird, werden mittels dem Befehl SetSysColors_() einige Systemfarben geändert. Wenn ich mich nun als Benutzer von Windows abmelde und mich dann wieder anmelde, liest Windows seine Systemfarben wieder aus der Win.ini, oder wo auch immer die Farben gespeichert sind.