Treeview全ノードにチェック – プログラミング – Home

Treeview全ノードにチェック
 
通知
すべてクリア

[解決済] Treeview全ノードにチェック


いけやん
 いけやん
(@いけやん)
ゲスト
結合: 16年前
投稿: 32
Topic starter  

始めまして、いけやんと申します。

さっそく質問したいと思います。

開発環境
WinXP Pro
Visual C++6.0
MFC ダイアログベース

今現在ツリービューで70個前後のノードを表示しています。

そして、その横にはCheckBoxを表示しており

TreeViewの[プロパティ]→[その他のスタイル]

の中にチェックボックスという項目があり

それで表示したCheckBoxなんですが

ボタンをクリックするだけで、全ノードにチェック

する処理をしたいのですが、解らず困っております。

すいませんが、よろしくお願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

void チェックする(ノード n) {
 n にチェックする
for ( nの子ノード c に対し ) {
チェックする(c);
}

みたいなもん書いて チェックする(根ノード) すればいいんじゃないかと。


返信引用
いけやん
 いけやん
(@いけやん)
ゲスト
結合: 16年前
投稿: 32
Topic starter  

アドバイスありがとうございます。

すいません。VC初心者で、基本的な事かもしれませんが

そのチェックする処理が解らないんですが

よければ教えて頂けないでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

リファレンスをご覧ください。
CTreeCtrl::SetCheck
http://msdn.microsoft.com/ja-jp/library/h1w2w3b3(VS.80).aspx


返信引用
いけやん
 いけやん
(@いけやん)
ゲスト
結合: 16年前
投稿: 32
Topic starter  

Blueさんありがとうございます。

リファレンスにのっている事を
聞いてすいませんでした。

まだ、聞きたいのですが
Blueさんに教えて頂いたCTreeCtrl::SetCheckの

サンプルでは、HTREEITEM hItem = m_TreeCtrl.GetFirstVisibleItem();

GetFirstVisibleItemが使われているのですが

これだと、一番上のノードを選択している時は
最初のノードだけチェックが付き

それ以外のノードを選択すると
一番上以外のノードにチェックが付きます。

一番上も、それ以外も、
全ノードにチェックを付けたいのですが

自分なりに何個か試したのですが
うまく行きません。

どのメンバを使えばうまく行くか
教えてもらえないでしょうか?


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

子供のアイテムを取得するにはCTreeCtrl::GetChildItemを
兄弟を取得するにはCTreeCtrl::GetNextItemを使えばいいです。

ルートから全部つけるならCTreeCtrlのメンバ変数m_treeがあるとすると

ある関数()
{
・・省略

チェックする(TVI_ROOT);

・・省略
}

void チェックする(HTREEITEM hItem) {
m_tree.SetCheck(hItem);
HTREEITEM hChildItem = m_tree.GetChildItem(hItem);
while (hChildItem != NULL)
{
チェックする(hChildItem);
hChildItem = tree.GetNextItem(hChildItem, TVGN_NEXT);
}
}

というような感じでしょうか。(動作保証なし)


返信引用
いけやん
 いけやん
(@いけやん)
ゲスト
結合: 16年前
投稿: 32
Topic starter  

Blueさんありがとうございます。

参考になりました。

for(){
m_tree.SetCheck(m_HndTree[i],TRUE);
}

これでやりたかった事が出来ました。

第2引数をTRUEするだけでした・・・

こんな事に気付かずに、本当に申し訳ないです。

επιστημηさん
Blueさん
大変、参考になりました。
ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました