case WM_INITDIALOG:
hComReg = GetDlgItem(hDlg, IDC_COMREGISTER);
lf.lfHeight = 14;
lstrcpy((LPWSTR)&lf.lfFaceName, (LPWSTR)"Verdana");
hFont1 = CreateFontIndirect(&lf);
SendMessage(hComReg, WM_SETFONT, (WPARAM)hFont1, TRUE);
изменение шрифта, цвета элемента
Код:
но ничего не происходит...помогите пожалуйста найти ошибку!
кстати не прокатывает не только с GroupBox, а вообще ни с какими элементами.
И можно ли поменять цвет области, которую охватыввает рамка groupBox? и если, то как?
Код:
lstrcpy((LPWSTR)&lf.lfFaceName, (LPWSTR)"Verdana");
в
Код:
lstrcpyA((LPSTR)&lf.lfFaceName, "Verdana");
привел в более корректный вид, но все равно не работает... =)
Цитата:
Код:
case WM_INITDIALOG:
Вот что говорит на этот счёт MSDN:
"Windows прорисовывает весь текст в диалоговом окне, используя по умолчанию системный шрифт. Программа может "заставить" Windows использовать другой шрифт, если установить стиль DS_SETFONT для диалогового окна."
При этом ВСЕГДА используется системный шрифт для заголовка и меню диалогового окна, даже если задан стиль DS_SETFONT.
Программа может создать диалоговое окно, содержащее стиль DS_SETFONT посредством вызова любой из функций:
Код:
CreateDialogIndirect
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam
В теории выглядит примерно так, на практике же я к сожалению не пробовал.
Код:
CreateDialogIndirect
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam
как последний параметр указывать DS_SETFONT ? Я просто новичок в API, потому не очень разбираюсь...
Цитата:
case WM_INITDIALOG:
hComReg = GetDlgItem(hDlg, IDC_COMREGISTER);
lf.lfHeight = 14;
lstrcpy((LPWSTR)&lf.lfFaceName, "Verdana");
hFont1 = CreateFontIndirect(&lf);
SendMessage(hComReg, WM_SETFONT, (WPARAM)hFont1, TRUE);
В конце нужно вернуть значение true:
Код:
return true;
и шрифт поменяется на "Verdana" 14 пунктов.