ツリー コントロールの項目のラベル
更新 : 2007 年 11 月
ツリー コントロール (CTreeCtrl) に項目を追加する場合は、通常、項目のラベルのテキストを指定します。InsertItem メンバ関数は、ラベルのテキストを含む文字列など、項目のプロパティを定義する TVITEM 構造体を渡すことができます。InsertItem には、さまざまなパラメータの組み合わせを使用して呼び出すことができるオーバーロードがあります。
ツリー コントロールは各項目を格納するためのメモリを割り当てますが、このメモリの大部分は項目ラベルのテキストによって使用されます。アプリケーションがツリー コントロール内の文字列のコピーを保持するようにすると、コントロールに必要なメモリ量を抑えることができます。これには、ツリー コントロールに実際の文字列を渡さずに、TV_ITEM の pszText メンバに LPSTR_TEXTCALLBACK 値またはパラメータ lpszItem を指定します。LPSTR_TEXTCALLBACK を使用することで、ツリー コントロールは項目の再描画が必要になるとアプリケーションから項目ラベルのテキストを取得します。テキストを取得するために、ツリー コントロールは TVN_GETDISPINFO 通知メッセージを送ります。この通知メッセージには、NMTVDISPINFO 構造体のアドレスが含まれます。その構造体の適切なメンバを設定して、このメッセージに応答する必要があります。
ツリー コントロールでは、ツリー コントロールを作成する処理のヒープから割り当てられたメモリを使用します。このヒープのうち、どれだけのメモリ容量が使用可能かによって、ツリー コントロールに作成できる項目の最大数が決まります。1 つの項目につき 64 バイトの容量が必要です。