none
ツリーコントロールで子アイテムが表示されません RRS feed

  • 質問

  • VIisual Studio 2005 with Service Pack1 で開発しています.

     

    MFCでツリーコントロールをダイアログに貼り付け、それをメンバ変数に割り当てOnInitDialogで

    下記のようにしたところ子アイテムが表示されません.

     

    BOOL CTestDlg:SurprisenInitDialog()
    {
        CDialog:SurprisenInitDialog();

     

         HTREEITEM hParentItem = mTree.InsertItem( L"親" );
         mTree.InsertItem( L"子", hParentItem );


        return TRUE;

    }

     

    ちなみに、MSDNのCTreeCtrl::InsertItemにあるTVINSERTSTRUCT を使うサンプルそのまま

    コピペしてみても子アイテムが表示されませんでした.

     

    何かツリーコントロールに設定をしないと子アイテムが表示されないとかいったこがあるので

    しょうか? ツリーコントロールのプロパティを見てもそれらしきものは見あたりません.

     

    何故、子アイテムが表示されないのかわかる方が見えましたら教えていただけないで

    しょうか.

    よろしくお願いします.

    2008年2月25日 2:59

回答

  • 親は表示されているのでしょうか?
    それなら、親をダブルクリックすると子が表示されるはずです。

    最初から子を表示したいのであれば、事前に Expand を呼んでおく必要があります。

    Code Snippet

    HTREEITEM hParentItem = mTree.InsertItem(_T("親"));
    mTree.InsertItem(_T("子"), hParentItem );

    mTree.Expand(hParentItem, TVE_EXPAND);


    # L”文字列” は _T("文字列") に変更しました。

    2008年2月25日 11:53
  • zakio様

     

    おっしゃる通りで親をダブルクリックしたら子が表示されました.

    デフォルトでは閉じられた状態であるということだったのですね.

     

    どうもありがとうございました.

     

    2008年2月26日 0:17

すべての返信

  • 親は表示されているのでしょうか?
    それなら、親をダブルクリックすると子が表示されるはずです。

    最初から子を表示したいのであれば、事前に Expand を呼んでおく必要があります。

    Code Snippet

    HTREEITEM hParentItem = mTree.InsertItem(_T("親"));
    mTree.InsertItem(_T("子"), hParentItem );

    mTree.Expand(hParentItem, TVE_EXPAND);


    # L”文字列” は _T("文字列") に変更しました。

    2008年2月25日 11:53
  • zakio様

     

    おっしゃる通りで親をダブルクリックしたら子が表示されました.

    デフォルトでは閉じられた状態であるということだったのですね.

     

    どうもありがとうございました.

     

    2008年2月26日 0:17