クライアントが Windows メッセージの処理を続行する必要があるゲームに取り組んでいます。そうしないと、ゲームが悪用される可能性があります。ウィンドウのサイズ変更とドラッグ イベント中のこの問題を解決するためにWM_TIMER
、メイン イベント ループを再開する 50 ミリ秒ごとに発生するメッセージがあります。
問題は、ユーザーがウィンドウ化されたクライアントの X ボタンまたは最小化ボタンをクリックしたままにしておくと、この手法が機能しないことです。(そのため、クリックは完了せず、クライアントを停止するだけです。)
Spy++ を使用すると、最後に表示されるメッセージは次のとおりです。
<00731> 00160D3C P WM_NCLBUTTONDOWN nHittest:HTCLOSE xPos:1150 yPos:178
<00732> 00160D3C P WM_MOUSEMOVE fwKeys:MK_LBUTTON xPos:1014 yPos:-23
その後、マウスを動かすまで何もWM_TIMER
表示されず、マウス ボタンを離すまでメッセージは表示されません。
問題は、マウスをウィンドウの X ボタンの上に置いた状態で、クライアントを再び動かすためにキーオフできるものはありますか? WM_TIMER
または、「ウォッチドッグ」メッセージが発火するようにできることはありますか?