Windows Mobile用に作成したゲームアプリケーションがあり、パズルにタイマーを関連付けたいと思っています。プログラムが何らかの理由でフォーカスを失った場合(電話がかかってきた、ユーザーがプログラムを切り替えた、ユーザーがWindowsボタンを押した)、パズルをカバーするポップアップダイアログボックスとタイマーを停止したい。ユーザーがポップアップダイアログを閉じると、タイマーが再び起動します。
誰かがこれを行う方法を知っていますか?
ありがとう
Windows Mobile用に作成したゲームアプリケーションがあり、パズルにタイマーを関連付けたいと思っています。プログラムが何らかの理由でフォーカスを失った場合(電話がかかってきた、ユーザーがプログラムを切り替えた、ユーザーがWindowsボタンを押した)、パズルをカバーするポップアップダイアログボックスとタイマーを停止したい。ユーザーがポップアップダイアログを閉じると、タイマーが再び起動します。
誰かがこれを行う方法を知っていますか?
ありがとう
簡単な方法は、 PInvoke を使用して、タイマーが作動するたびに (1 秒に 1 回?) GetForegroundWindow() と GetWindowText() を呼び出すことです。
GetForegroundWindow() は、GetWindowText() の呼び出しに使用できる Windows ハンドルを返します。フォアグラウンド ウィンドウのテキストがフォームの Text プロパティ (キャプション) と一致する場合、アプリにフォーカスがあることがわかります。その後、各タイマーティックでパズルを表示または非表示にすることができます.