ツリー コントロールのラベルの編集

ユーザーは、TVS_EDITLABELS スタイルを持つツリー コントロール (CTreeCtrl) 内の項目のラベルを直接編集できます。 ユーザーは、フォーカスがある項目のラベルをクリックして編集を開始します。 アプリケーションは、EditLabel メンバー関数を使用 して編集を 開始します。 ツリー コントロールは、編集が開始され、取り消されるか完了した場合に通知を送信します。 編集が完了したら、必要に応じて項目のラベルを更新する必要があります。

ラベルの編集が開始すると、ツリー コントロールは新しい TVN_BEGINLABELEDIT を送信 します。 この通知を処理することで、一部のラベルの編集を許可し、他のラベルの編集を防止できます。 0 を返す場合は編集が許可され、0 以外の値を返した場合は許可されません。

ラベルの編集が取り消された場合、または完了すると、ツリー コントロールは新しい TVN_ENDLABELEDIT を送信します。 lParam パラメーターは、NMTVDISPINFO 構造体のアドレスです。 item メンバーは、項目を識別し、編集されたテキストを含む TVITEM 構造体です。 必要に応じて、編集された文字列を検証した後に、項目のラベルを更新する責任があります。 編集が取り消された場合、TV_ITEMpszText メンバーは 0 です。

ラベルの編集中に、通常は TVN_BEGINLABELEDIT 通知メッセージに応答して、GetEditControl メンバー関数を使用して、ラベルの編集に使用される編集コントロールへのポインターを取得できます。 編集コントロールの SetLimitText メンバー関数を呼び出して、ユーザーが編集コントロールに入力またはサブクラス化できるテキストの量を制限し、無効な文字をインターセプトして破棄することができます。 ただし、編集コントロールは TVN_BEGINLABELEDIT の送信にのみ表示されるのでご注意ください。

関連項目

CTreeCtrl の使い方
コントロール