掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ツリービューコントロールでアイテムの展開を捕らえるには? (ID:69640)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ツリービューやフォルダ選択ダイアログをサブクラス化して フォルダ選択ダイアログのプロシージャで > case TVN_ITEMEXPANDED: TVN_ITEMEXPANDEDW にしてみ。 > TVM_EXPAND 基本的に、頭が TVM となっているのは「ツリービューに対して命令する時に使用されるメッセージ識別子」で、 頭が TVN となっているのは「ツリービューからのイベント発生を通知する時に使用される識別子」。 ※ 厳密に言えば、TVN は WM_NOTIFY で使用される通知コードなんで実際は全く別物 > ツリービューなのでTVM_EXPANDが飛んでいるのだろうと 他者がツリービューに対して「アイテムを展開したい」と思った時は、命令をしないとツリービュー には伝わらないので命令する(TVM_EXPAND を飛ばす)必要がある。 けど、ツリービュー自身が「アイテムを展開したい」と思った時は別に命令(TVM_EXPAND を飛ばす) なんてしなくても良いよね。普通に展開(例えば item_expand_仮() 関数を実行等)しても良い。 なので「アイテムを展開」を知る手段として TVM_EXPAND を当てにするよりは、素直に TVN_ITEMEXPANDED / TVN_ITEMEXPANDING を利用した方が良いかと。 > TVM_EXPANDの使い方は見つかるものの、捕まえる方法は 一応書いておくと、ツリービューのプロシージャで LRESULT CALLBACK WindowProc (HWND, UINT uMsg, WPARAM LPARAM) { // 提示ソースのように WM_NOTIFY 内じゃない if (uMsg == TVM_EXPAND) { } } とすれば(TVM_EXPAND が投げられているなら)捕獲可能なハズ。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.