Viewでの色変更に関して


シロー  2008-08-06 00:59:30  No: 68818

いつもお世話になっております。

質問なのですが
現在SDIで3行2列の分割画面を作成しています。
それぞれViewが違います。

マウスクリックしたViewを黒色に
それ以外のViewを白色に変化させ
フォーカスとして
Viewの画面枠をピンクにしたいと思っています。
現在のフォーカス位置を知るのはIDが必要になると思うのですが
ViewのIDが見当たりません。
他に何かよい方法がございましたら
アドバイスを宜しくお願い致します。


仲澤@失業者  2008-08-06 01:13:31  No: 68819

「グループ内の唯一要素が選択されている状態を管理する」
にはグループを配列にし、唯一の選択要素を「選択されている
インデックス」で表現するのが手軽な方法です。


かもねぎ  2008-08-06 04:17:49  No: 68820

Create...系のAPI だとハンドルが取得できるものがあります。
たとえば・・CreateRectRgnとかですね。


ゴン  2008-08-08 00:01:03  No: 68821

開発環境が書かれていませんが、分割ウィンドウということでMFCを使用しているということで話を進めます。

分割ウィンドウ内のビューのIDを取得するのならCSplitterWnd::IdFromRowColで取得できると思います。

フォーカスウィンドウのハンドル(ID?)なら::GetFocus()で取得できますし、ポインタならCWnd::GetFocus()です。

CWnd*から分割ウィンドウの位置を知りたいならCSplitterWnd::IsChild()で可能です。

でも、フォーカスのあるビューの枠の色を変えるだけなら、WM_SETFOCUSとWM_KILLFOCUSのメッセージを処理したほうが早いような。。。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加