TreeViewのアイテム取得

[戻る]
cc 2010/05/13(木) 15:59:14
お世話になっています。ccです。
TreeViewクラスがあります。
void MyTreeView::OnInitialUpdate()
{
    CTreeView::OnInitialUpdate();
//初期値の設定
    HTREEITEM hItemRoot = ctrl.InsertItem("神奈川県", 0, 1);
    HTREEITEM hItemYkhm = ctrl.InsertItem("横浜市", 0, 1, hItemRoot);
    ctrl.InsertItem("西区", 2, 2, hItemYkhm);
    ctrl.InsertItem("中区", 2, 2, hItemYkhm);
    ctrl.InsertItem("神奈川区", 2, 2, hItemYkhm);
    ctrl.InsertItem("横須賀市", 2, 2, hItemRoot);
    ctrl.InsertItem("相模原市", 2, 2, hItemRoot);
    ctrl.InsertItem("藤沢市", 2, 2, hItemRoot);
}
void MyTreeView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult) 
{
    CTreeCtrl&    ctrl = GetTreeCtrl();
    HTREEITEM    item = ctrl.GetSelectedItem();
    HTREEITEM    parent = ctrl.GetParentItem( item);

    if ( !parent)            // Root.
        return;

    int        index = ctrl.GetItemData( item);
    int        rid = ctrl.GetItemData( parent);

}
index =0;
rid  =0;
アイテムを取得できません。
何か間違っているのでしょうか。

よろしくお願いします

環境:.Net2002 MFC

aetos 2010/05/13(木) 17:56:09
何が取得できることを期待しているのですか?

GetItemData で取得できるのはアイテムの lParam です。

http://msdn.microsoft.com/ja-jp/library/ettyybhw.aspx
このページで言うところの一番上または2番目の InsertItem で設定しなければ取得で
きません。

cc 2010/05/17(月) 14:56:55
[[解決]]
aetosさん
ご回答ありがとう。

    tvstruct.item.pszText = "神奈川県";
    tvstruct.item.lParam = NULL;
    hItemRoot = treectrl.InsertItem( &tvstruct);

    tvstruct.hParent = hItemRoot;
    tvstruct.item.pszText = "横浜市";
    tvstruct.item.lParam = (int)RT_ACCELERATOR; 
    hItemYkhm =treectrl.InsertItem( &tvstruct);

で、うまく取得できました。

ありがとうございました。

古いスレッドには追加発言できません。