Я пытаюсь сделать прозрачную заставку на 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
, и он работал нормально. Правильно ли работает этот код? - person chris   schedule 14.08.2013WM_MOUSEMOVE
сообщения генерируются только в том случае, если очередь сообщений пуста. Если вы отправляете много сообщений, вы никогда не сможете полностью опустошить очередь сообщений, чтобы при следующем вызовеGetMessage
было сгенерировано сообщениеWM_MOUSEMOVE
. - person IInspectable   schedule 14.08.2013