Problem mit WM_SETFONT
-
Da brauchst du dann SelectObject
-
yo danke, kannst du mir die gesammte syntax nennen? Bin neu in der winapi programmierung
-
SelectObject(hDC,GetStockObject(DEFAULT_GUI_FONT));
-
ok mit select object habe ich jetzt textout auf den standard font gesetzt, wenn ich aber die buttons verändern möchte musste ich bis jetzt alle button einzeln mit sendmessage und WM_SETFONT auf den standard font setzen. Gibt es nicht die Möglichkeit mit SendMessage(hWnd, WM_SETFONT,(WPARAM)GetStockObject(DEFAULT_GUI_FONT),0); alle buttons auf den standard zu setzen? Bei mir funktioniert es nämlich so nicht.
-
Nein, wie bereits gesagt, musst du das für jedes Fenster einzeln machen. Du kannst aber mit EnumChildWindows alle Childs durchgehen und in der Callback den Font setzen
-
kannst du mir bitte die syntax nennen, ich habe schon mehrere sachen probiert aber nicht geschafft den font ohne sendmessage zu ändern
-
sry 4 doppelpost
ich hab jetzt einen quellcode gefunden womit ich den font des hauptfensters (hWnd) ändern kann.
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
SendMessage(hwnd, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), 0);
return TRUE;
}EnumChildWindows(hWnd, EnumChildProc, NULL);
Wenn ich jetzt aber versuche den Font eines dialog Fensters zu ändern (hDlg) geht es nicht mehr, der compiler zeigt mir aber keine fehlermeldung an
EnumChildWindows(hDlg, EnumChildProc, NULL);
-
Der zeigt auch keine fehler, den von der syntax ist alles richtig, aber die Inhalte eines Dialogs sind die Enkelkinder deines hauptfensters, wenn du verstehst was ich meine. (Parent->Child->Child)
-
Wenn das Hauptfenster der parent ist, ist ein weiteres fenster also das "enkelkind" des hauptfensters, und was ist das "child" daszwischen?
Kann ich denn so den font des childfensters ändern?
-
du mußt praktisch eine ebene tiefer gehen, mit dem Handle des Childs, dessen Childs finden