Как создать абсолютно прозрачное окно с помощью MFC? - PullRequest
2 голосов
/ 13 января 2009

Я хочу создать полностью прозрачное окно с MFC, но я не знаю, как это сделать. Можете ли вы сказать мне путь?

Большое спасибо!

Ответы [ 3 ]

2 голосов
/ 15 января 2009

Вы можете использовать многослойные окна для эффектов прозрачности. См. http://msdn.microsoft.com/en-us/library/ms997507.aspx. Обязательно установите бит WS_EX_LAYERED и используйте UpdateLayeredWindow. Это позволяет вам перехватывать сообщения, даже если окно невидимо для пользователя.

0 голосов
/ 13 января 2009

Если вы действительно хотите невидимого, то вы можете просто очистить бит WS_VISIBLE в стиле окна. Переопределите PreCreateWindow и убедитесь, что этот флаг очищен.

Или же вы можете создать окно, которое обрабатывает только сообщения, указав HWND_MESSAGE в качестве родительского hwnd в вызовах CreateWindow.

0 голосов
/ 13 января 2009

Под прозрачным я предполагаю, что вы имеете в виду невидимое, а не полупрозрачное. Вы можете установить область окна в пустой регион. Взгляните на SetWindowRgn и Функции региона в Win32 API. Могут существовать некоторые эквивалентные классы и методы MFC (например, CRgn ), если вы хотите избежать чистых вызовов Win32.

...