Как нарисовать текст через заполненный прямоугольник, xor-ing его цвет с помощью GDI?C++

Программы на C++. Форум разработчиков
Ответить
Гость
 Как нарисовать текст через заполненный прямоугольник, xor-ing его цвет с помощью GDI?

Сообщение Гость »

Я не уверен, правильно ли я выражаю это словами. Лучший способ - показать это с изображением. Я пытаюсь заполнить прямоугольник во время переворачивания цвета текста в нем. Так же, как редактирование Control Do DIS:



Так код чертика (Calling из wm_paint ): ): ): ): ): ).

Код: Выделить всё

//Erase background
::FillRect(hDC, &rcClient, ::GetSysColorBrush(COLOR_WINDOW));

//Draw text
::DrawText(hDC, text, text.size(), &rc,
DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_NOPREFIX | DT_SINGLELINE);

//Draw highlighted rect & invert text
HGDIOBJ hOldBrush = ::SelectObject(hDC, ::GetSysColorBrush(COLOR_HIGHLIGHT));
::PatBlt(hDC, rcDrawFrame.left, rcDrawFrame.top, rcDrawFrame.Width(), rcDrawFrame.Height(), DSTINVERT);
::SelectObject(hDC, hOldBrush);
Но по какой -то причине прямоугольник фона выходит как черный, и я знаю, что color_highlight синий в этой системе:



Подробнее здесь: https://stackoverflow.com/questions/449 ... r-with-gdi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»