Schriftart für PopUp-Menü

Anfängerfragen zum Programmieren mit PureBasic.
DKoch160
Beiträge: 3
Registriert: 03.11.2006 12:44
Wohnort: Berlin

Schriftart für PopUp-Menü

Beitrag von DKoch160 »

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...
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

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
DKoch160
Beiträge: 3
Registriert: 03.11.2006 12:44
Wohnort: Berlin

Beitrag von DKoch160 »

Kann man denn die Schriftart aller Menüs der derzeitigen Windowssitzung mit einem mal ändern?

(Ähnlich wie man mit SetSysColors_() die Farbe des Menüs ändern kann...)

Wäre in meinem Fall sogar noch viel besser. Bin allerdings jetzt erst drauf gekommen.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Kann man denn die Schriftart aller Menüs der derzeitigen Windowssitzung mit einem mal ändern?
- Rechter Mauskilck auf Desktop
- "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.
DKoch160
Beiträge: 3
Registriert: 03.11.2006 12:44
Wohnort: Berlin

Beitrag von DKoch160 »

Fluid Byte hat geschrieben:
Kann man denn die Schriftart aller Menüs der derzeitigen Windowssitzung mit einem mal ändern?
- Rechter Mauskilck auf Desktop
- "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.
:-) Na, wie ich die Schriftart mit dem Eigenschaften-Dialog von Windows verändere ist mir schon klar.

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.
Antworten