Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > Как изменить фонт Edit Box'а


Автор: bugmenot 2.9.2006, 20:50
Вот я хочу сделать так, чтоб Edit Box показывал свой текст с Courier New'ем
Как это сделать?

Спс

Автор: 586 2.9.2006, 20:56
Посылай сообщение WM_SETFONT.

Автор: bugmenot 2.9.2006, 21:03
WM_SETFONT  
wParam = (WPARAM) hfont;            // handle of font 
lParam = MAKELPARAM(fRedraw, 0);    // redraw flag 


Откуда мне этот hfont взять?
С CreateFontIndirect чето не получается
Можно пример плз?

Автор: 586 2.9.2006, 21:08
http://msdn.microsoft.com/library/en-us/gdi/fontext_8fp0.asp?frame=true

Автор: bugmenot 2.9.2006, 21:15
CreateFont и CreateFontIndirect это разве не одно и тоже?
Короче не получилось у меня сменить фонт на Courier New

Можно пример?

Автор: 586 2.9.2006, 21:21
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 HWND hWnd=CreateWindowEx(0, "Edit", "Edit", WS_VISIBLE | WS_CHILD, 5, 5, 60, 20, Handle, 0, HInstance, 0);
 HFONT hf=CreateFont(-13, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "Courier new");
 if(!hf) MessageBoxA(Handle, "Can't create font", 0, 16);
 SendMessage(hWnd, WM_SETFONT, (WPARAM)hf, 0);
}

Автор: bugmenot 2.9.2006, 21:26
Спасибо, дошло
Я просто раньше времени запускал DeleteObject(hFont);
Оказывается его надо запускать тока тогда, когда фонт уже не нужен

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)