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


Автор: MakeItHappen 18.6.2009, 22:48
Здраствуйте! Сделал кнопку с флагом BS_OWNERDRAW. Закрашиваю кнопку, далее вывожу текст. Кнопка то закрасилась, но проблема в том что когда вывожу текст через DrawText, некоторая область на которой находится текст закрашивается серым цветом... 
Прошу помочь с возникшими вопросами:
1) Как этого избежать?
2) как изменить цвет текста?
3) Как изменить размер и шрифт текстта?

MFC не использую. Вон на всякий случай некоторый код:

Код

RECT rc;
GetClientRect(hWndButton,&rc);
FillRect(GetDC(hWndButton),&rc,CreateSolidBrush(RGB(28,245,16)));
DrawText(GetDC(hWndButton),"Exit",-1,&rc,DT_CENTER | DT_NOCLIP | DT_SINGLELINE);
ReleaseDC(hWndButton,GetDC(hWndButton));

Автор: Andrey44 19.6.2009, 07:26
Во-первых, не понятно где вы это рисуете.
В0-вторых это все надо делать в обработке WM_DRAWITEM ну или хотя-бы WM_CTLCOLOR и не так как вы делаете.

Цитата(MakeItHappen @  18.6.2009,  22:48 Найти цитируемый пост)
1) Как этого избежать?
SetBkColor(................)
Цитата(MakeItHappen @  18.6.2009,  22:48 Найти цитируемый пост)
2) как изменить цвет текста?
SetTextColor(.....................)
Цитата(MakeItHappen @  18.6.2009,  22:48 Найти цитируемый пост)
3) Как изменить размер и шрифт текстта?
CreateFont(.........)->SelectObject(........)

Будут вопросы, задавайте.

Автор: Earnest 19.6.2009, 08:21
1) Лучше не SetBkColor, а SetBkMode (TRANSPARENT)

Автор: Andrey44 19.6.2009, 08:25
Цитата(Earnest @  19.6.2009,  08:21 Найти цитируемый пост)
1) Лучше не SetBkColor, а SetBkMode (TRANSPARENT) 
Точно, а я все не мог вспомнить как эта функция называется. smile 

Автор: MakeItHappen 19.6.2009, 15:54
Всем спасибо большое.

Автор: MakeItHappen 19.6.2009, 16:50
И еще неебольшой вопрос...  BN_CLICKED  это когда кликнули, а когда навели какое сообщение?

Автор: Earnest 19.6.2009, 20:28
У стандартной кнопки такого нет. Сам лови маус-мув на кнопке и извращайся.

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