Как создать полностью прозрачное окно с помощью MFC?

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

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


person user26404    schedule 13.01.2009    source источник


Ответы (3)


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

person unistudent    schedule 14.01.2009

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

person fbonnet    schedule 13.01.2009

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

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

person adzm    schedule 13.01.2009