掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ツリービューコントロールでアイテムの展開を捕らえるには? (ID:69639)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
おせわになります、さらやと申します。 (いきなりの長文、失礼します。) VS2005 C++, MFC不使用でダイアログアプリを作成しています。 (開発/ターゲットとも、OSはXPです。) 現在SHBrowseForFolder()を使用して、フォルダ選択のダイアログを 表示しているのですが、このダイアログで「+」をクリックして アイテムを展開したというイベントを捕らえたいと思っていますが、 うまく捕らえることができなくて、困っています。 ツリービューなのでTVM_EXPANDが飛んでいるのだろうと ツリービューやフォルダ選択ダイアログをサブクラス化して 見たのですが、捕らえられません。 (SPY++で見ても、飛んでいるように見えません。) また、ネットを検索していてWM_NOTIFYで通知されるという 記述を見かけたため、下記のように記述してみましたが 捕まえることができません。 (フォルダ選択ダイアログのプロシージャ、ツリービューのプロシージャ 両方で試してみましたが、捕まえられませんでした。) ------(ソース抜粋(一部略) ここから)------------- NMHDR* pnmhdr; case WM_NOTIFY: pnmhdr=(NMHDR*)lParam; switch(pnmtv->hdr.code){ case TVN_ITEMEXPANDED: ::MessageBox(hdlg,"TVN_ITEMEXPANDED","WM_NOTIFY",MB_OK); break; case TVM_EXPAND: ::MessageBox(hdlg,"TVM_EXPAND","WM_NOTIFY",MB_OK); break; } break; ------(ソース抜粋 ここまで)------------- 参考書やMSDNライブラリも見てみましたが、TVM_EXPANDの使い方は 見つかるものの、捕まえる方法は見つけることができませんでした。 ちなみに、自分でTreeView_Expand()を発行してアイテムを展開したときは、ツリービューのプロシージャにTVM_EXPANDが飛んできていました。 私の実装方法がまずいのか、そもそもの考え方が間違っているのかすら わからなくなって困っております。 なにか、ヒントだけでもいただければと思い、質問させていただきました。 よろしくお願いいたします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.