掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
CFrameWndExでALT+ドラッグ (ID:73692)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
CFrameWndExを使ったSDIプログラムのビュー内に、 ALT+ドラッグで操作できる機能を付けたいと思っています。 機能自体は、OnMouseMove()のドラッグ処理内で、 if (GetKeyState(VK_MENU) & 0x8000) などと判定して場合分けすれば実現可能ですが、 ドラッグ中やドラッグ後にALTを離すと、メニューにフォーカスが移ってしまいます。 CFrameWndExを使わないクラシックメニューでは、 ALTのON/OFFだけの操作であればそのように動作しますが、 ONからOFFの間にドラッグなどのマウス操作があれば、 メニューには移らないようです。 CFrameWndEx::PreTranslateMessage()が、 WM_SYSKEYUPを捕まえてメニューにフォーカスを移しているようなのですが、 自身のフレームウィンドウのPreTranslateMessage()で WM_SYSKEYUPを捕まえて無条件に無視させてしまうと、 今度はALTのON/OFFだけだったときにメニューに移らなくなってしまいます。 CFrameWndExの実装ミスのような気がするのですが、 ALTのON/OFFだけだったのか、マウス操作が行われたのかは、 WM_SYSKEYUPのタイミングで判定することは可能なのでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.