日韩欧美国产精品免费一二-日韩欧美国产精品亚洲二区-日韩欧美国产精品专区-日韩欧美国产另-日韩欧美国产免费看-日韩欧美国产免费看清风阁

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

巧用SendMessage函數(shù)擴(kuò)展Treeview功能

admin
2013年11月15日 0:19 本文熱度 5523

Option Explicit
Private Type TPoint
    x As Long
    y As Long
End Type

Private Type TVHITTESTINFO
    pt As TPoint
    flags As Long
    hItem As Long
End Type

Private Type TVITEM
    mask As Long
    HTreeItem As Long
    state As Long
    stateMask As Long
    pszText As Long
    cchTextMax As Long
    iImage As Long
    iSelectedImage As Long
    cChildren As Long
    lParam As Long
End Type

Const TV_FIRST [color=#0000ff]=
&H1100
Const TVM_HITTEST = TV_FIRST + 17
Const TVM_GETITEM = TV_FIRST + 12
Const TVHT_ONITEMLABEL = &H4
Const TVIF_TEXT = &H1
Const GMEM_FIXED = &H0
'設(shè)置行高
Const TVM_SETITEMHEIGHT = TV_FIRST + 27
'設(shè)置背景色
Const TVM_SETBKCOLOR = TV_FIRST + 29


Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As String, ByVal Source As Long, ByVal Length As Long)
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal wFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long

Dim hItemPrv As Long

Private Sub Form_Load()

    Dim ndX As Node

    '加入若干Item

    Set ndX = TreeView1.Nodes.Add(, , "R", "Root", 1)

    Set ndX = TreeView1.Nodes.Add("R", tvwChild, "Key1", "Node1", 1)

    Set ndX = TreeView1.Nodes.Add("Key1", tvwChild, "SubKey1", "SubNode1", 3)

    Set ndX = TreeView1.Nodes.Add("SubKey1", tvwChild, "SubKeys1", "SubNode1", 3)

    Set ndX = TreeView1.Nodes.Add("Key1", tvwChild, "SubKey2", "SubNode2")

    Set ndX = TreeView1.Nodes.Add("Key1", tvwChild, "SubKey3", "SubNode3")

    Set ndX = TreeView1.Nodes.Add("Key1", tvwChild, "SubKey4", "SubNode4")
    
  '設(shè)置樹(shù)型列表控件節(jié)點(diǎn)行(Node)高度
    Call SendMessage(TreeView1.hwnd, TVM_SETITEMHEIGHT, 30, 0)
  '設(shè)置樹(shù)型列表控件的背景顏色
    Call SendMessage(TreeView1.hwnd, TVM_SETBKCOLOR, 0, RGB(255, 0, 0))

End Sub

'為樹(shù)型列表控件(Treeview)中不同的節(jié)點(diǎn)行(Node)設(shè)置不同的Tooltips氣泡提示
'在TVM類消息中有一個(gè)TVM_HITTEST消息,發(fā)送該消息可以檢測(cè)控件表面上的某一點(diǎn),
'如果該點(diǎn)位于一個(gè)標(biāo)題上,則返回該標(biāo)題的句柄。而利用TVM_GETITEM消息,則可以
'根據(jù)標(biāo)題句柄返回該標(biāo)題行的文本。所以結(jié)合利用這兩個(gè)消息可以獲取光標(biāo)所在標(biāo)題行的標(biāo)題文本.
Private Sub TreeView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)

    Dim ptA As TPoint

    Dim tf As TVHITTESTINFO

    Dim TV As TVITEM

    Dim hStr As Long

    Dim hItem As Long

    Dim astr As String * 1024

    Dim bstr

    On Error GoTo errLab

    '獲得當(dāng)前光標(biāo)所在的位置坐標(biāo)

    ptA.x = Int(x / Screen.TwipsPerPixelX)

    ptA.y = Int(y / Screen.TwipsPerPixelY)

    tf.pt = ptA

    tf.flags = TVHT_ONITEMLABEL

    '獲得光標(biāo)所在的Item的句柄

    hItem = SendMessage(TreeView1.hwnd, TVM_HITTEST, 0, tf)

    '如果未獲得句柄或者同上一次是同一個(gè)Item的句柄則退出

    If ((hItem <= 0) or (hItem = hItemPrv)) Then Exit Sub

    hItemPrv = hItem

    '分配一定的內(nèi)存空間用以存儲(chǔ)Item的標(biāo)題

    hStr = GlobalAlloc(GMEM_FIXED, 1024)

    If hStr > 0 Then

        TV.mask = TVIF_TEXT

        '獲取標(biāo)題文本

        TV.HTreeItem = hItem

        'Item句柄

        TV.pszText = hStr

        TV.cchTextMax = 1023

        '發(fā)送TVM_GETITEM獲得標(biāo)題文本

        Call SendMessage(TreeView1.hwnd, TVM_GETITEM, 0, TV)

        '將標(biāo)題文本拷貝到字符串a(chǎn)str中

        CopyMemory astr, hStr, 1024

        bstr = Left$(astr, (InStr(astr, Chr$(0)) - 1))

        TreeView1.ToolTipText = bstr

        '釋放分配的內(nèi)存空間

        GlobalFree hStr

    End If

    Exit Sub

errLab:

    Resume Next

End Sub

該文章在 2013/11/15 0:19:06 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 欧美aaaaa级毛卡片在线 | 无毒不卡在线观看无需下载 | 国产农村一 | 手机免费在线观看日韩电影 | 秋霞影院| 亚洲欧美综合人成在线 | 91丝袜在线观看亚洲 | 国产日韩在线看电影 | 飘雪影院手机免 | 亚洲国产网站在线观看 | 台湾swag在线 | 福利片一区二区 | 日韩欧美在线中 | 国产特黄精品一区二区在线 | 最新好剧电影在线观影平台 | 亚洲小说欧美 | 欧美综合自拍亚洲综合图区 | 国产精品宾馆精品酒店 | 秋霞电影在线观看 | 亚洲免费在线视频观看 | 午夜三级伦理片在线观看 | 一区二区三区中国视频免费在线播 | 老司机99视频在线免费观看 | 国产日本精品一区二区 | 成人看免费一级毛 | 最近日本韩国高清免费大全 | 最近高清中文在线字幕在线观看 | 免费人成年激情视频在线观看 | 手机看片久 | 国产精品k频道首页在线观看 | 亚洲国产日韩无在线播放 | 最近伦中文字 | 一区二区三区四区欧美 | 6080欧美一区二区三区四区 | 欧洲精品视频一二三区视频 | 在线欧美日韩亚洲国产一区 | 国产一区三区二区中文在线 | 好男人好资源神马在线 | 日韩一级欧美一级一级国产 | 欧美精品一区二区 | 亚洲精品第一页 |