Я хочу создать полностью прозрачное окно с помощью MFC, но не знаю, как это сделать. Можете ли вы сказать мне дорогу?
Большое спасибо!
Я хочу создать полностью прозрачное окно с помощью MFC, но не знаю, как это сделать. Можете ли вы сказать мне дорогу?
Большое спасибо!
Вы можете использовать многослойные окна для эффектов прозрачности. См. http://msdn.microsoft.com/en-us/library/ms997507.aspx. Обязательно установите бит WS_EX_LAYERED и используйте UpdateLayeredWindow. Это позволяет перехватывать сообщения, даже если окно не видно пользователю.
Под прозрачным я предполагаю, что вы имеете в виду невидимый, а не полупрозрачный. Вы можете установить область окна в пустую область. Взгляните на SetWindowRgn и Функции регионов в Win32 API. Могут быть некоторые эквивалентные классы и методы MFC (например, CRgn), если вы хотите избежать чистых вызовов Win32.
Если вы действительно хотите невидимость, вы можете просто очистить бит WS_VISIBLE в стиле окна. Переопределите PreCreateWindow и убедитесь, что этот флаг снят.
Кроме того, вы можете создать окно, которое обрабатывает только сообщения, указав HWND_MESSAGE в качестве родительского hwnd в вызовах CreateWindow.