Что заставляет WS_TABSTOP влиять на порядок рисования окон? - PullRequest
1 голос
/ 27 февраля 2012

В WTL CBitmapButton не поддерживает изображение с прозрачным слоем, как PNG.поэтому я настраиваю код для использования GDI + для рисования PNG, назовите его как CPNGButton.Но на win XP все странно.Когда кнопка перекрывается другим окном, кнопка получает сначала WM_PAINT, а затем родитель, что приводит к неверному результату.

enter image description here ---> enter image description here

Я проверяю ресурси удалите атрибут WS_TABSTOP из шаблона кнопки, все идет хорошо, родительское окно получает сначала WM_PAINT, а затем кнопку.Что заставляет WS_TABSTOP влиять на порядок рисования окон?

1 Ответ

2 голосов
/ 27 февраля 2012

Это то, что происходит, когда вы не рисуете фон.Это оставляет «дыру» в окне, вы видите пиксели любого окна позади вашего.Или рабочий стол, если такого окна нет.В противном случае не уверен, что это имеет отношение к WS_TABSTOP.

Используйте флаг стиля WS_EX_TRANSPARENT.Это говорит Windows, что вы хотите, чтобы родительский элемент кнопки нарисовал себя в окне клиента, чтобы предоставить фоновые пиксели.

...