2012-01-11 20 views
0

私はtreeviewの要素をクリックすることを意味します - >それはlistviewのsthを表示します。CTreeViewCtrlのClickイベントを取得する

は、私はこのようなコントロールを作成します(ここで、ツリーとリスト - > CTreeViewCtrlとCListViewCtrl)

split.Create(*this,rcDefault,NULL,0,WS_EX_CLIENTEDGE); 
    RECT rlist,rtree; 
    list.Create(split,rlist,CListViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | LVS_EDITLABELS, WS_EX_CLIENTEDGE); 
    tree.Create(split,rtree,CTreeViewCtrl::GetWndClassName(),WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | LVS_REPORT | TVS_EDITLABELS, WS_EX_CLIENTEDGE); 
    list.AddColumn(L"KEY",0); 
    list.AddColumn(L"VALUE",1); 
    split.SetSplitterPanes(tree,list); 

どのパラメータイベント機能を持っているのだろうか?

答えて

1

TVN_SELCHANGED notification code

は選択が 別の項目から変更されているツリービューコントロールの親ウィンドウに通知します。この通知コードは でWM_NOTIFYメッセージの形式で送信されます。あなたがアイテムをクリックしたときに、であり、それがTreeViewコントロールの選択を変更

、制御コードTVN_SELCHANGEDで(例えば、ダイアログなど)、その親にWM_NOTIFYメッセージを送信し、あなたがそれを処理することになっています。あなたのmainfrm.hで

+0

'MESSAGE_HANDLER(WM_NOTIFY、OnClickItem)'? OnClickItedの中で、私はTVN_SELCHANGEDで作業する必要がありますか? –

+0

'NOTIFY_HANDLER_EX(IDC_TREE_EXPLORER、TVN_SELCHANGED、OnExplorerTreeSelChanged)'、http://forum.sources.ru/index.php?showtopic=274194&hl= –

+0

を参照してください。しかしIDC_TREE_EXPLORERはありません –

0

// ... 
CTreeViewCtrlEx m_treeview; 

// ... 
BEGIN_MSG_MAP(CMainFrame) 
// ... 
NOTIFY_CODE_HANDLER(TVN_SELCHANGED, OnTVSelChanged) 
END_MSG_MAP() 

// mainfrm.h or mainfrm.cpp 
LRESULT CMainFrame::OnTVSelChanged(int idCtrl, LPNMHDR pnmh, BOOL& bHandled) 
{ 
    //... 
} 
関連する問題