Win32API質問箱 Build38
■ このスレッドは過去ログ倉庫に格納されています
0292271
2005/12/13(火) 10:28:15また別の問題が発生しました。
タイトルバー等で右クリックした時にも動作が止まってしまいます。
どうやら何らかのメッセージをDefWindowProcに渡すと
TrackPopupMenuか何かを内部で呼び出すようです。
試しにWM_NCRBUTTONDOWNでDefWindowProcを呼び出さないようにすると、
システムメニューそのものが表示されなくなったのですが、
タスクバーで右クリックするとタスクバー上にシステムメニューが表示され、
やはり動作が止まってしまうので、WM_NCRBUTTONDOWNでDefWindowProcを呼び出すことが
直接の原因ではないかもしれません。
一応試しにWM_NCRBUTTONDOWNで
UINT uItem = TrackPopupMenu(GetSystemMenu(hWnd, FALSE), TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, pt.x, pt.y, 0, hWnd, NULL)
こんな風にしてみると、標準の動作に近くなったのですが、
TrackPopupMenu内部でメッセージループが回るようで、
自分が作ったメッセージループには処理が戻ってきません。
標準動作に近い形で、常に自分のメッセージループに処理を戻したいのですが、
いい方法はありますか?
TrackPopupMenu以外の方法でHMENUをポップアップ表示できれば、
後は自分で似た動作を作りこむことができそうなのですが、
その方法も解りません。
■ このスレッドは過去ログ倉庫に格納されています