【解決方法】ノードのツリー ビュー チェックボックスを表示または非表示にするにはどうすればよいですか?

プログラミングQA


こんにちは、みんな!

まず、時間を割いてこのスレッドを閲覧し、支援しようとしてくださった皆様に感謝の意を表したいと思います。

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

SetWindowLongPtr( … ) 関数を使用してチェックボックスのスタイルを設定しました。

すべてのノードにはチェックボックスがありますが、一部のノードにはチェックボックスが必要で、一部のノードにはテキストの横に何も表示されません。

これはサブクラス化によって実現できますか。可能であれば、いくつかのポインタやリンク、おそらくサンプル コードやチュートリアルを教えてください。

サブクラス化によってそれができない場合は、それを行う方法について正しい方向を教えてください (おそらくカスタム描画またはスーパークラス化?)。

私は MS Visual Studio Express 2008、Windows XP、C++ で作業しています。 純粋な WIN32 API。

本当にありがとう!

解決策 1

これをチェックしてください – 多用途のツリーコントロール[^]

解決策 2

OPの説明後: 1つの解決策は、ノードを削除して再度追加することです。今回はチェックボックスを削除または追加します。 子がある場合は、子セット全体を保存して復元する必要があります。 2 番目の解決策は、カスタム描画を使用してグラフィックスのチェック ボックスをシミュレートし、必要なすべてのイベントをプログラムすることです。 ノードを無効にし、チェック ボックスを削除 (非表示)、無効化、またはその他の状態にします。

-SA

解決策 3

これを行うには 2 つの方法があります。

1 つは、解決策 1 と 2 で提案されているように、チェックボックスをシミュレートすることです。もう 1 つは、次の方法で実行することです。

ツリービューコントロールを作成したら項目を追加し、 このアイテムのハンドルを取得、次に設定項目は、ここで説明されている方法を示します。

http://stackoverflow.com/questions/17798463/is-it-possible-to-remove-some-checkboxes-from-tree-views-nodes[^]

解決策 4

こんにちは、

画像を使用しない別の解決策は、ここで説明するように、treview チェック ボックスを無効にする (またはその動作をより適切にシミュレートする) ことです。

http://matteo72.wordpress.com/wp-admin/post.php?post=327&action=edit&message=6&postpost=v2[^]

コメント

タイトルとURLをコピーしました