-
Aug 4th, 2016, 04:30 PM
#1
Thread Starter
Member
[RESOLVED] Make Treeview Using API
What is the code to make and position a Treeview using API? I also want to put specific text into each of the nodes. Thank you.
-
Aug 5th, 2016, 08:51 AM
#2
Re: Make Treeview Using API
Originally Posted by ChildOfTheKing
What is the code to make ...
Originally Posted by MSDN
Originally Posted by ChildOfTheKing
... and position a Treeview using API?
Originally Posted by MSDN
Size and Position Functions
After creating a window, an application can set the window's size or position by calling one of several different functions, including SetWindowPlacement, MoveWindow, SetWindowPos, and DeferWindowPos. SetWindowPlacement sets a window's minimized position, maximized position, restored size and position, and show state. The MoveWindow and SetWindowPos functions are similar; both set the size or position of a single application window. The SetWindowPos function includes a set of flags that affect the window's show state; MoveWindow does not include these flags. Use the BeginDeferWindowPos, DeferWindowPos, and EndDeferWindowPos functions to simultaneously set the position of a number of windows, including the size, position, position in the z-order, and show state.
Originally Posted by ChildOfTheKing
I also want to put specific text into each of the nodes.
Originally Posted by MSDN
Item Labels
You typically specify the text of an item's label when adding the item to the tree-view control. The TVM_INSERTITEM message includes a TVITEM structure that defines the item's properties, including a string containing the text of the label.
Originally Posted by MSDN
TVM_SETITEM message
The TVM_SETITEM message sets some or all of a tree-view item's attributes. You can send this message explicitly or by using the TreeView_SetItem macro.
. . .
Remarks
The hItem member of the TVITEM or TVITEMEX structure identifies the item, and the mask member specifies which attributes to set.
See this post for a VB6 example.
On Local Error Resume Next: If Not Empty Is Nothing Then Do While Null: ReDim i(True To False) As Currency: Loop: Else Debug.Assert CCur(CLng(CInt(CBool(False Imp True Xor False Eqv True)))): Stop: On Local Error GoTo 0
Declare Sub CrashVB Lib "msvbvm60" (Optional DontPassMe As Any)
-
Aug 6th, 2016, 10:50 AM
#3
Thread Starter
Member
Re: Make Treeview Using API
Here is what I have so far. It shows a Treeview, but I can't figure out how to make "Child 1" a child of "Root 1". Suggestions?
Here is the code for the Main Form:
Code:
Option Explicit
Private Sub Form_Load()
Call InitComctl32(ICC_TREEVIEW_CLASSES)
qwTreeviewHandle = CreateWindowEx(0, WC_TREEVIEW, "Tree View", _
WS_VISIBLE Or WS_CHILD Or WS_BORDER Or TVS_HASBUTTONS Or TVS_HASLINES Or TVS_LINESATROOT, _
15, 15, 200, 200, hwnd, 0, App.hInstance, 0)
Call SendMessage(qwTreeviewHandle, TVM_SETBKCOLOR, 0, ByVal RGB(255, 255, 255)) ' White
Dim uTVIS As TVInsertStruct
uTVIS.hParent = TVI_ROOT
uTVIS.Item.pszText = "Root1"
uTVIS.Item.mask = TVIF_TEXT
Call SendMessage(qwTreeviewHandle, TVM_INSERTITEM, 0&, uTVIS)
uTVIS.Item.pszText = "Child 1"
Call SendMessage(qwTreeviewHandle, TVM_INSERTITEM, 0&, uTVIS)
End Sub
Here is the Code for the Module:
Code:
Option Explicit
Public qwTreeviewHandle As Long
Public Const CCM_FIRST = &H2000
Public Const CCM_SETBKCOLOR = (CCM_FIRST + 1)
Public Const CCM_SETCOLORSCHEME As Long = (CCM_FIRST + 2)
Public Const CCM_GETCOLORSCHEME As Long = (CCM_FIRST + 3)
Public Const CCM_SETUNICODEFORMAT As Long = (CCM_FIRST + 5)
Public Const CCM_GETUNICODEFORMAT As Long = (CCM_FIRST + 6)
Public Const COLOR_WINDOW As Long = 5
Public Const COLOR_WINDOWTEXT As Long = 8
Public Const GWL_STYLE As Long = (-16)
Public Const ICC_TREEVIEW_CLASSES As Long = &H2 'treeview, tooltips
Public Const TV_FIRST As Long = &H1100
Public Const TVGN_ROOT As Long = &H0
Public Const TVGN_NEXT As Long = &H1
Public Const TVGN_PREVIOUS As Long = &H2
Public Const TVGN_PARENT As Long = &H3
Public Const TVGN_CHILD As Long = &H4
Public Const TVGN_FIRSTVISIBLE As Long = &H5
Public Const TVGN_NEXTVISIBLE As Long = &H6
Public Const TVGN_PREVIOUSVISIBLE As Long = &H7
Public Const TVGN_DROPHILITE As Long = &H8
Public Const TVGN_CARET As Long = &H9
Public Const TVHT_NOWHERE As Long = &H1
Public Const TVHT_ONITEMICON As Long = &H2
Public Const TVHT_ONITEMLABEL As Long = &H4
' Public Const TVHT_ONITEM = (TVHT_ONITEMICON | TVHT_ONITEMLABEL | TVHT_ONITEMSTATEICON)
Public Const TVHT_ONITEMINDENT As Long = &H8
Public Const TVHT_ONITEMBUTTON As Long = &H10
Public Const TVHT_ONITEMRIGHT As Long = &H20
Public Const TVHT_ONITEMSTATEICON As Long = &H40
Public Const TVHT_ABOVE As Long = &H100
Public Const TVHT_BELOW As Long = &H200
Public Const TVHT_TORIGHT As Long = &H400
Public Const TVHT_TOLEFT As Long = &H800
Public Const TVI_ROOT As Long = &HFFFF0000
Public Const TVI_FIRST As Long = &HFFFF0001
Public Const TVI_LAST As Long = &HFFFF0002
Public Const TVI_SORT As Long = &HFFFF0003
Public Const TVIF_TEXT As Long = &H1
Public Const TVIF_IMAGE As Long = &H2
Public Const TVIF_PARAM As Long = &H4
Public Const TVIF_STATE As Long = &H8
Public Const TVIF_HANDLE As Long = &H10
Public Const TVIF_SELECTEDIMAGE As Long = &H20
Public Const TVIF_CHILDREN As Long = &H40
Public Const TVIF_DI_SETITEM As Long = &H1000
Public Const TVIS_BOLD As Long = &H10
Public Const TVM_INSERTITEM As Long = (TV_FIRST + 0)
Public Const TVM_INSERTITEMA As Long = (TV_FIRST + 0)
Public Const TVM_DELETEITEM As Long = (TV_FIRST + 1)
Public Const TVM_EXPAND As Long = (TV_FIRST + 2)
Public Const TVM_GETITEMRECT As Long = (TV_FIRST + 4)
Public Const TVM_GETCOUNT As Long = (TV_FIRST + 5)
Public Const TVM_GETINDENT As Long = (TV_FIRST + 6)
Public Const TVM_SETINDENT As Long = (TV_FIRST + 7)
Public Const TVM_GETIMAGELIST As Long = (TV_FIRST + 8)
Public Const TVM_SETIMAGELIST As Long = (TV_FIRST + 9)
Public Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
Public Const TVM_SELECTITEM As Long = (TV_FIRST + 11)
Public Const TVM_GETITEMA As Long = (TV_FIRST + 12)
Public Const TVM_GETITEM As Long = (TV_FIRST + 12)
Public Const TVM_SETITEMA As Long = (TV_FIRST + 13)
Public Const TVM_SETITEM As Long = (TV_FIRST + 13)
Public Const TVM_EDITLABELA As Long = (TV_FIRST + 14)
Public Const TVM_GETEDITCONTROL As Long = (TV_FIRST + 15)
Public Const TVM_GETVISIBLECOUNT As Long = (TV_FIRST + 16)
Public Const TVM_HITTEST As Long = (TV_FIRST + 17)
Public Const TVM_CREATEDRAGIMAGE As Long = (TV_FIRST + 18)
Public Const TVM_SORTCHILDREN As Long = (TV_FIRST + 19)
Public Const TVM_ENSUREVISIBLE As Long = (TV_FIRST + 20)
Public Const TVM_SORTCHILDRENCB As Long = (TV_FIRST + 21)
Public Const TVM_ENDEDITLABELNOW As Long = (TV_FIRST + 22)
Public Const TVM_GETISEARCHSTRINGA As Long = (TV_FIRST + 23)
Public Const TVM_SETTOOLTIPS As Long = (TV_FIRST + 24)
Public Const TVM_GETTOOLTIPS As Long = (TV_FIRST + 25)
Public Const TVM_SETINSERTMARK As Long = (TV_FIRST + 26)
Public Const TVM_SETITEMHEIGHT As Long = (TV_FIRST + 27)
Public Const TVM_GETITEMHEIGHT As Long = (TV_FIRST + 28)
Public Const TVM_SETBKCOLOR As Long = (TV_FIRST + 29)
Public Const TVM_SETTEXTCOLOR As Long = (TV_FIRST + 30)
Public Const TVM_GETBKCOLOR As Long = (TV_FIRST + 31)
Public Const TVM_GETTEXTCOLOR As Long = (TV_FIRST + 32)
Public Const TVM_SETSCROLLTIME As Long = (TV_FIRST + 33)
Public Const TVM_GETSCROLLTIME As Long = (TV_FIRST + 34)
Public Const TVM_SETINSERTMARKCOLOR As Long = (TV_FIRST + 37)
Public Const TVM_GETINSERTMARKCOLOR As Long = (TV_FIRST + 38)
Public Const TVM_GETITEMSTATE As Long = (TV_FIRST + 39)
Public Const TVM_SETLINECOLOR As Long = (TV_FIRST + 40)
Public Const TVM_GETLINECOLOR As Long = (TV_FIRST + 41)
Public Const TVM_MAPACCIDTOHTREEITEM As Long = (TV_FIRST + 42)
Public Const TVM_MAPHTREEITEMTOACCID As Long = (TV_FIRST + 43)
Public Const TVM_INSERTITEMW As Long = (TV_FIRST + 50)
Public Const TVM_GETITEMW As Long = (TV_FIRST + 62)
Public Const TVM_SETITEMW As Long = (TV_FIRST + 63)
Public Const TVM_GETISEARCHSTRINGW As Long = (TV_FIRST + 64)
Public Const TVM_EDITLABELW As Long = (TV_FIRST + 65)
Public Const TVM_SETUNICODEFORMAT As Long = CCM_SETUNICODEFORMAT
Public Const TVM_GETUNICODEFORMAT As Long = CCM_GETUNICODEFORMAT
Public Const TVS_HASBUTTONS As Long = &H1
Public Const TVS_HASLINES As Long = &H2
Public Const TVS_LINESATROOT As Long = &H4
Public Const TVS_DISABLEDRAGDROP As Long = &H10
Public Const TVS_SHOWSELALWAYS As Long = &H20
Public Const TVS_RTLREADING As Long = &H40
Public Const TVS_NOTOOLTIPS As Long = &H80
Public Const TVS_CHECKBOXES As Long = &H100
Public Const TVS_TRACKSELECT As Long = &H200
Public Const TVS_SINGLEEXPAND As Long = &H400
Public Const TVS_FULLROWSELECT As Long = &H1000
Public Const TVS_NOSCROLL As Long = &H2000
Public Const TVS_NONEVENHEIGHT As Long = &H4000
Public Const WC_TREEVIEW = "SysTreeView32"
Public Const WS_BORDER As Long = &H800000
Public Const WS_CHILD As Long = &H40000000
Public Const WS_VISIBLE As Long = &H10000000
Public Type TVItemEx
mask As Long
hItem As Long
State As Long
stateMask As Long
pszText As String
cchTextMax As Long
iImage As Long
iSelectedImage As Long
cChildren As Long
lParam As Long
iIntegral As Long
End Type
Public Type TVInsertStruct
hParent As Long
hInsertAfter As Long
Item As TVItemEx
End Type
Public Declare Sub InitCommonControls Lib "comctl32" ()
Public Declare Function InitCommonControlsEx Lib "comctl32" _
(lpInitCtrls As tagINITCOMMONCONTROLSEX) As Boolean
Public Type tagINITCOMMONCONTROLSEX
dwSize As Long
dwICC As Long
End Type
Public Declare Function CreateWindowEx Lib "user32" _
Alias "CreateWindowExA" _
(ByVal dwExStyle As Long, _
ByVal lpClassName As String, _
ByVal lpWindowName As String, _
ByVal dwStyle As Long, _
ByVal X As Long, ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hWndParent As Long, _
ByVal hMenu As Long, _
ByVal hInstance As Long, _
lpParam As Any) As Long
Public Declare Function SendMessage Lib "user32" _
Alias "SendMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Public Function InitComctl32(dwFlags As Long) As Boolean
Dim icc As tagINITCOMMONCONTROLSEX
On Error GoTo Err_OldVersion
With icc
.dwSize = Len(icc)
.dwICC = dwFlags
End With
InitComctl32 = InitCommonControlsEx(icc)
Exit Function
Err_OldVersion:
InitCommonControls
End Function
-
Aug 6th, 2016, 10:51 AM
#4
Thread Starter
Member
Re: Make Treeview Using API
Here is the Treeview:
-
Aug 6th, 2016, 11:32 AM
#5
Thread Starter
Member
Re: Make Treeview Using API
OK. I figured out the solution to my own problem. The following is the Main Form code that changed:
Code:
Dim qwRootItem As Long
qwRootItem = SendMessage(qwTreeviewHandle, TVM_INSERTITEM, 0&, uTVIS)
uTVIS.hParent = qwRootItem
uTVIS.Item.pszText = "Child 1"
Call SendMessage(qwTreeviewHandle, TVM_INSERTITEM, 0&, uTVIS)
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|