2013-06-21 7 views
0

Я обрабатывать WM_CTLCOLORSTATIC сообщение, чтобы сделать прозрачный фон для статического управления:Как перерисовать статический контроль при изменении текста?

case WM_CTLCOLORSTATIC: 
{ 
SetTextColor((HDC)wParam,RGB(0,0,0)); 
SetBkMode((HDC)wParam,TRANSPARENT); 
HBRUSH return_bush = (HBRUSH)GetStockObject(NULL_BRUSH); 
return (LRESULT)return_brush; 
} 

Это прекрасно работает. И теперь я пытаюсь изменить текст для статического контроля, вызвав SendMessage(). Но в результате новый текст помещается поверх существующего текста. Я думаю, что нужно перекрасить статический контроль. Как перекрасить статический контроль? Как это сделать?

ответ

0

Я думаю, что ответ на вашу проблему (изменение текста в Transparent Static control) уже включен в Stackoverflow; См. here

+0

Спасибо, но куда вставить этот код ?: RECT rect; HWND hctrl; hctrl = GetDlgItem (hwnd, ControlID); GetClientRect (hctrl, &rect); MapWindowPoints (hctrl, HWND (POINT *) и прямоугольник, 2); InvalidateRect (HWND, и Прямоугольник, TRUE); какое сообщение WM обрабатывать –

+0

вставить код, где вы изменить текст из? статический контроль (после SendMessage) – manuell

+0

Пожалуйста, сообщите нам, если это сработает для вас, сейчас – manuell