09/07/18 02:41:43 WxQiL2cL
>>601
windowsのウィンドウは、それを作成したスレッドでメッセージが処理される。
メインのウィンドウは必ずプライマリスレッドで生成されるから、メインウィンドウのWM_COMMANDを
実行中は、他のメッセージは処理できない。つまりメニュー表示中は画面を更新できない。
WM_COMMAND中にPeekMessageとかやれば別だが……PeekMessage埋め込みは、思わぬ問題を
引き起こしたり、コードがぐちゃぐちゃになったりするのでお勧めできない。
これを簡単に避ける方法は2つしかない。
ひとつは、メニューをゲーム画面中に実装して、OSのメニューは使わない方法。
もうひとつは、プライマリスレッドから入力スレッドを作成して、ゲームで利用する
ウィンドウは、すべて入力スレッドで作成する方法。
これだとゲーム画面の更新は入力スレッドで行われ、メニュー操作はプライマリスレッドで
行われるので、メニュー選択中の画面は更新される。