1

C++ と WinAPI で透明なスクリーン セーバーを作成しようとしています。

WM_MOUSMOVE今のところ Windows XP では問題なく動作しますが、WES7 では次の問題があります: 画面を透明にすると、メッセージを受信できません。

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 );

それ以外の場合はマウスメッセージを受信しないため、0より大きくなければならない情報を既に取得していbyAlphaますが、マウスクリックだけでなくキーボードメッセージも受信します。

これで私を助けてくれることを願っています。

4

1 に答える 1

0

これはスクリーン セーバーなので、いつ終了するかを知るには WM_MOUSEMOVE が必要だと思います。SetCapture を使用すると、ウィンドウが実際に指している場所に関係なく、すべてのマウス入力をウィンドウに送信できます。

于 2014-03-28T21:17:43.630 に答える