いつもお世話になっております。
質問なのですが
現在SDIで3行2列の分割画面を作成しています。
それぞれViewが違います。
マウスクリックしたViewを黒色に
それ以外のViewを白色に変化させ
フォーカスとして
Viewの画面枠をピンクにしたいと思っています。
現在のフォーカス位置を知るのはIDが必要になると思うのですが
ViewのIDが見当たりません。
他に何かよい方法がございましたら
アドバイスを宜しくお願い致します。
「グループ内の唯一要素が選択されている状態を管理する」
にはグループを配列にし、唯一の選択要素を「選択されている
インデックス」で表現するのが手軽な方法です。
Create...系のAPI だとハンドルが取得できるものがあります。
たとえば・・CreateRectRgnとかですね。
開発環境が書かれていませんが、分割ウィンドウということでMFCを使用しているということで話を進めます。
分割ウィンドウ内のビューのIDを取得するのならCSplitterWnd::IdFromRowColで取得できると思います。
フォーカスウィンドウのハンドル(ID?)なら::GetFocus()で取得できますし、ポインタならCWnd::GetFocus()です。
CWnd*から分割ウィンドウの位置を知りたいならCSplitterWnd::IsChild()で可能です。
でも、フォーカスのあるビューの枠の色を変えるだけなら、WM_SETFOCUSとWM_KILLFOCUSのメッセージを処理したほうが早いような。。。
ツイート | ![]() |