by 7 » 2006年8月11日(金) 12:46
> 親アイテムのアイコンを設定しようとコードを組んでみましたがアクセス違反が起きます。どこが悪いのでしょうか?
実際に動かしてないのですが、こうしてみては如何でしょう?
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
'------------------------------------------------------------
' イメージリストを作成
'------------------------------------------------------------
Dim TVIcon As *TVITEM
Dim IMIndex[2] As Long' アイテムのインデックス
hImageList=ImageList_Create(16,16,ILC_COLOR4 or ILC_MASK,3,0)
IMIndex[0]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Close))
IMIndex[1]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Open))
IMIndex[2]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Text))
SendMessage(hAny,TVM_SETIMAGELIST,0,hImageList As Long)
TVIcon=calloc(SizeOf(TVITEM))
TVIcon->hItem=SendMessage(hAny,TVM_GETNEXTITEM,TVGN_ROOT,0) As HTREEITEM
TVIcon->mask=TVIF_IMAGE
TVIcon->iImage=IMIndex[0]
TVIcon->iSelectedImage=IMIndex[1]
SendMessage(hAny,TVM_SETITEM,0,TVIcon)
free(TVIcon)
TVITEM構造体のポインタ型を宣言してもそのまま使える訳ではありません。mallocやcallocでメモリを確保してやる必要が有ります。
TVITEM構造体のポインタを格納する場合は、mallocやcallocしなくても良かったと思うんですけどね。
> 親アイテムのアイコンを設定しようとコードを組んでみましたがアクセス違反が起きます。どこが悪いのでしょうか?
実際に動かしてないのですが、こうしてみては如何でしょう?
[hide][code]'------------------------------------------------------------
' イメージリストを作成
'------------------------------------------------------------
Dim TVIcon As *TVITEM
Dim IMIndex[2] As Long' アイテムのインデックス
hImageList=ImageList_Create(16,16,ILC_COLOR4 or ILC_MASK,3,0)
IMIndex[0]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Close))
IMIndex[1]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Open))
IMIndex[2]=ImageList_AddIcon(hImageList,LoadIcon(GetModuleHandle(0),IDI_Text))
SendMessage(hAny,TVM_SETIMAGELIST,0,hImageList As Long)
TVIcon=calloc(SizeOf(TVITEM))
TVIcon->hItem=SendMessage(hAny,TVM_GETNEXTITEM,TVGN_ROOT,0) As HTREEITEM
TVIcon->mask=TVIF_IMAGE
TVIcon->iImage=IMIndex[0]
TVIcon->iSelectedImage=IMIndex[1]
SendMessage(hAny,TVM_SETITEM,0,TVIcon)
free(TVIcon)[/code][/hide]
TVITEM構造体のポインタ型を宣言してもそのまま使える訳ではありません。mallocやcallocでメモリを確保してやる必要が有ります。
TVITEM構造体のポインタを格納する場合は、mallocやcallocしなくても良かったと思うんですけどね。