M
Pellaeon schrieb:
IDD_TEST_DIALOG DIALOGEX 0, 0, 199, 109
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_VISIBLE | WS_CAPTION
EXSTYLE WS_EX_APPWINDOW
CAPTION "Test"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
DEFPUSHBUTTON "Beenden",IDOK,112,87,84,16,BS_FLAT
PUSHBUTTON "starten",IDC_BUTTON_TEST,3,87,84,16,BS_FLAT
LISTBOX IDC_LIST_SELECTION,4,33,192,49,LBS_SORT | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
LTEXT "Test Test",IDC_STATIC,3,2,193,26
END
Diese Parameter in resource.rc verwendet der Dialog-Manager beim (internen) Aufbau der einzelnen Elemente (also der einzelnen Fenster).
Bei OnInit() bzw. WM_INITDIALOG hat er diese Parameterwerte schon berücksichtigt.
D.h. jetzt kannst Du für jedes Dialog-Element separat einen gewünschten Font zuordnen, in etwa so (für das obige Beispiel IDC_STATIC):
SendDlgItemMessage( hwnd_dialog, IDC_STATIC, WM_SETFONT, (WPARAM)hfont_meinFont, (LPARAM)0 );
(Bin eher in Win32-API beheimatet, evtl. muß man die Funktion MFC-konform umschreiben? Der Prinzip ist der selbe)
Du kannst auch alternativ die eine Zeile in resource.rc abändern:
FONT 8, "MS Shell Dlg", 0, 0, 0x1
in z.B.:
FONT 8, "Courier New", 0, 0, 0x1
Dann bekommen alle Elemente des Dialogs diesen neuen Font zugewiesen.
Natürlich kannst Du da nicht zur Laufzeit einfach so wieder einen anderen Font wählen, das geht nur mit der ersten Methode!
Aber Achtung! Sobald Du mit dem Resourcen-Editor von Visual Studio am Dialog was änderst, dann schreibt Visual Studio möglicherweise wieder den (alten) voreingestellten Font-Namen in resource.rc rein!
Martin