ページ 11

ツリービューに追加

Posted: 2006年5月15日(月) 20:02
by C1000
ツリービューにアイテムを追加するために次のようなサブルーチンを作りましたが、
テキストが設定されません。どこが悪いのでしょうか?

コード: 全て選択

Sub ItemAdd (HTR As HTREEITEM,Text As BytePtr)
	Dim tvi As TVINSERTSTRUCT
	Dim hTreeItem As HTREEITEM
	'子アイテムを追加する。
    tvi.hParent = HTR
    tvi.item.pszText = Text
    hTreeItem = TreeView_InsertItem( hAny , tvi )
End Sub

Posted: 2006年5月15日(月) 20:08
by 雷電
私が質問したものですが、参考にしていただければ光栄です
http://www.activebasic.com/forum/viewtopic.php?t=652

Posted: 2006年5月15日(月) 20:57
by C1000
実は雷電さんが質問した物を参考に作っています。

Re: ツリービューに追加

Posted: 2006年5月15日(月) 21:08
by 7
試してないんですけど、ItemAdd()関数の第一引数がバイバリューになってるせいじゃないでしょうか。バイリファレンスにしてみては?

コード: 全て選択

Sub ItemAdd (ByRef HTR As HTREEITEM,ByVal Text As BytePtr)
    Dim tvi As TVINSERTSTRUCT
    Dim hTreeItem As HTREEITEM
    '子アイテムを追加する。
    tvi.hParent = HTR
    tvi.item.pszText = Text
    hTreeItem = TreeView_InsertItem( hAny , tvi )
End Sub
自分は省略好きじゃなくて ByVal も書いちゃいます。

追記。
思いっきり勘違いしてました。無視してください。
TVITEM構造体だと思ったらHTREEITEMでしたね...。

Posted: 2006年5月15日(月) 21:12
by 雷電
そうだったんですか。
ツリービューは前にやってたなぁーと思って探して、URLを貼り付けました。
諦めてしまったツリービューですが、この際なので、もう一度学びなおそうかと思います。。。(^_^;)

Posted: 2006年5月15日(月) 21:36
by 7
気を取り直して返信です。TVITEM構造体の mask メンバに TVIF_TEXT を指定しているでしょうか?

コード: 全て選択

Sub ItemAdd (ByVal HTR As HTREEITEM,ByVal Text As BytePtr)
    Dim tvi As TVINSERTSTRUCT
    Dim hTreeItem As HTREEITEM
    '子アイテムを追加する。
    tvi.hParent = HTR
    tvi.item.mask=TVIF_TEXT	' TVITEM構造体の pszText メンバを有効にします
    tvi.item.pszText = Text
    hTreeItem = TreeView_InsertItem( hAny , tvi )
End Sub

Posted: 2006年5月16日(火) 19:39
by C1000
うまくいきました~
7さん・雷電さんありがとうございました。