Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

изменение шрифта, цвета элемента

5.7K
17 ноября 2007 года
N-John
52 / / 05.07.2006
Пытаюсь изменить шрифт заголовка элемента Group Box таким образом

 
Код:
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? и если, то как?
5.7K
17 ноября 2007 года
N-John
52 / / 05.07.2006
перевел:
 
Код:
lstrcpy((LPWSTR)&lf.lfFaceName, (LPWSTR)"Verdana");

в
 
Код:
lstrcpyA((LPSTR)&lf.lfFaceName, "Verdana");


привел в более корректный вид, но все равно не работает... =)
397
18 ноября 2007 года
SergPas
527 / / 03.02.2007
Можно предположить, что вы используете диалоговое окно, описанное в файле ресурсов, так как обрабатываете сообщение WM_INITDIALOG вместо WM_CREATE:
Цитата:
 
Код:
case WM_INITDIALOG:


Вот что говорит на этот счёт MSDN:
"Windows прорисовывает весь текст в диалоговом окне, используя по умолчанию системный шрифт. Программа может "заставить" Windows использовать другой шрифт, если установить стиль DS_SETFONT для диалогового окна."
При этом ВСЕГДА используется системный шрифт для заголовка и меню диалогового окна, даже если задан стиль DS_SETFONT.
Программа может создать диалоговое окно, содержащее стиль DS_SETFONT посредством вызова любой из функций:

 
Код:
CreateDialogIndirect
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam

В теории выглядит примерно так, на практике же я к сожалению не пробовал.
5.7K
18 ноября 2007 года
N-John
52 / / 05.07.2006
 
Код:
CreateDialogIndirect
CreateDialogIndirectParam
DialogBoxIndirect
DialogBoxIndirectParam


как последний параметр указывать DS_SETFONT ? Я просто новичок в API, потому не очень разбираюсь...
397
18 ноября 2007 года
SergPas
527 / / 03.02.2007
Цитата:

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 пунктов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог