Я пытаюсь сделать прозрачную заставку в C ++ и WinAPI.
На Windows XP он работает нормально, но на WES7 у меня возникает следующая проблема:
Делая мой экран прозрачным, я не могу получить любой WM_MOUSMOVE
Сообщения.
SetWindowLongPtr( hWnd,
GWL_EXSTYLE,
GetWindowLongPtr(hWnd, GWL_EXSTYLE) | WS_EX_LAYERED | WS_EX_TOOLWINDOW );
double TransparencyPercentage = 50.0;
double fAlpha = TransparencyPercentage * ( 255.0 /100 );
BYTE byAlpha = static_cast<BYTE>( fAlpha );
SetLayeredWindowAttributes( hWnd, 0, byAlpha, LWA_ALPHA );
Я уже получил информацию, что byAlpha
должно быть больше 0, потому что иначе я не получу никаких сообщений мыши, но я все равно получаю сообщения клавиатуры, а также щелчки мыши.
Надеюсь, вы можете помочь мне с этим.
Так как это заставка, я предполагаю, что вам нужно WM_MOUSEMOVE, чтобы знать, когда выйти. Вы можете использовать SetCapture, чтобы все данные мыши отправлялись в ваше окно независимо от того, куда оно на самом деле указывает.
Других решений пока нет …