トップページ > 過去ログ > 記事閲覧
ウインドウをトップにもって行きたい
名前:鉄平 日時: 2007/09/11 22:33

Dxlibとは直接関係の無い質問ですが… 非アクティブ状態の現在ウインドウをアクティブにするには、 どのようにすればよいのでしょうか? 具体的には、リアルタイムなシミュレーションゲームで、 非アクティブ状態でも常にゲームが進行し、 イベント発生時にゲームウインドウをアクティブにさせる、 という使用法を想定しています。

Page: 1 |

Re: ウインドウをトップにもって行きたい ( No.1 )
名前:優柔不断 日時:2007/09/12 01:17

APIのShowWindow関数をこのように使えるのではないでしょうか。 ShowWindow(GetMainWindowHandle(),SW_SHOW); 自信はありませんが、たぶんこれで大丈夫だと思います。
Re: ウインドウをトップにもって行きたい ( No.2 )
名前:JAK 日時:2007/09/12 21:06

SetForegroundWindow(GetMainWindowHandle()); が一応前面に持ってくるAPIですが、これ単体だと、 タスクバーのボタンが点滅するだけでアクティブにはなりません。 確実にアクティブにするのは以下のようなやりかたになると思います。 DWORD dwThreadID, dwForeThreadID; dwThreadID = GetWindowThreadProcessId(GetMainWindowHandle(), NULL); dwForeThreadID = GetWindowThreadProcessId(GetForegroundWindow(), NULL); AttachThreadInput(dwThreadID, dwForeThreadID, TRUE); SetForegroundWindow(GetMainWindowHandle()); AttachThreadInput(dwThreadID, dwForeThreadID, FALSE);

Page: 1 |