1

リソース エディターを使用して、ダイアログ ボックスにツリー ビュー コントロールを作成しました。

Microsoft が説明した方法で、SetWindowLongPtr( ... ) 関数を使用してチェックボックス スタイルを設定しました。

すべてのノードにはこのようにチェックボックスがありますが、チェックボックスが必要なものと、テキストの横に何も立っていないものがあります(親ノードにはチェックボックスがなく、子ノードまたは単純なもののみ->子のないもののみ)。

これは、サブクラス化、またはカスタム/所有者の描画、またはスーパークラス化によって達成できますか?

4

1 に答える 1

2

ツリー コントロールは、状態イメージを使用してチェックボックスを描画します。TVS_CHECKBOXESスタイルに関するドキュメントによると:

状態の画像 1 はチェックされていないボックスで、状態の画像 2 はチェックされているボックスです。状態イメージをゼロに設定すると、チェック ボックスが完全に削除されます。

したがって、次のようにして、ツリー項目からチェック ボックスを削除できます。

TVITEM tvi;
tvi.hItem = hTreeItem;
tvi.mask = TVIF_STATE;
tvi.stateMask = TVIS_STATEIMAGEMASK;
tvi.state = 0;
TreeView_SetItem(hWndTree, &tvi);
于 2013-07-22T22:43:18.507 に答える