Изменение цвета текста

  • Автор темы alekssgor
  • Дата начала
A

alekssgor

Как изменить цвет текста в элементах управления?
Так же как и при выводе в окно(Через PAINTSTRUCT, HDC и события WM_PAINT)???

Вот фрагмент кода:

Код:
static HWND hEdit;
static HFONT hFont;
switch (message)				 /* handle the messages */
{
case WM_CREATE:
{
hEdit = CreateWindow("EDIT", NULL,
WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER,
30, 30, 350, 20, hwnd, (HMENU)ID_EDIT, hinstance, NULL);
SendMessage(hEdit,EM_LIMITTEXT,(WPARAM)40,0);
//Изменить шрифт
hFont = CreateFontA(15,8,0,0,FW_BOLD,FALSE,TRUE,FALSE,1,OUT_CHARACTER_PRECIS,
OUT_CHARACTER_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SCRIPT,0); 
SetWindowFont(hEdit,hFont,0);
//Изменить цвет текста
//????????????????????
break;
}
 
F

flierhosta

На сколько помню я, это делается так:
SetTextColor(hdc, RGB(255,0,0)); //текст должен вывестись красным цветом

SetBkColor(hdc, RGB(255,0,0)); //или красный цвет фона под текстом
 
A

alekssgor

На сколько помню я, это делается так:
SetTextColor(hdc, RGB(255,0,0)); //текст должен вывестись красным цветом

SetBkColor(hdc, RGB(255,0,0)); //или красный цвет фона под текстом

Не ты не про то! Ты про тупо вывод в окно. А мы про элементы управления. Я уже допёр
Просто не мог понять как найти контекст отображения для элементов управления
Теперь понял через сообщение WM_CTLCOLOREDIT:
Код:
Фрагмент функции окна

static HWND hEdit[2];
switch (message)				 /* handle the messages */
{
case WM_CREATE:
{
hEdit[0] = CreateWindow("EDIT","Зелёный фон, красный шрифт",
WS_CHILD|WS_VISIBLE|WS_BORDER,
10,100,250,20,hwnd,(HMENU)ID_EDIT1,hinstance,0);
hEdit[1] = CreateWindow("EDIT","Красный фон, зелёный шрифт",
WS_CHILD|WS_VISIBLE|WS_BORDER,
10,150,250,20,hwnd,(HMENU)ID_EDIT2,hinstance,0);
SetFocus(hEdit[0]);
break;
}

case WM_CTLCOLOREDIT:
{
if((HWND)lParam == hEdit[0])
{ 
SetBkColor((HDC)wParam,RGB(0,255,0));
SetTextColor((HDC)wParam,RGB(255,0,0));
break;
}
else if((HWND)lParam == hEdit[1])
{
SetBkColor((HDC)wParam,RGB(255,0,0));
SetTextColor((HDC)wParam,RGB(0,255,0));
break;
}
break;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!