狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

SENDMESSAGE函數(shù)巧應(yīng)用

SENDMESSAGE函數(shù)巧應(yīng)用

更新時(shí)間:2024-04-10 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

在這一期的SendMessage函數(shù)應(yīng)用中,我將向大家介紹如何利用消息函數(shù)來擴(kuò)展樹型列表(TreeView)控件的功能相信對于樹型列表控件大家十分的熟悉,典型的應(yīng)用就是Windows資源管理器中的目錄列表。在VB中,樹型列表控件包含在Microsoft Windows Common Control 6.0(也可能是5.0,視你的VB或者系統(tǒng)版本而定)中。在Windows API中,有一系列的以TVM_ 開頭的消息值,這些消息就是擴(kuò)展樹型列表控件所特定的消息值,下面向大家介紹其中的一些應(yīng)用。
1、設(shè)置樹型列表控件的背景顏色
首先做如下的定義:
Private Declare Function SendMessage Lib "user32" Alias "Send MessageA" (ByVal hwnd As Long,ByVal wMsg As Long, ByVal wParam As Long,ByVal lParam As Long) As Long
Const TV-FIRST = &H1100
Const TVM-SETBKCOLOR = TV_FIRST + 29
然后再作如下調(diào)用:
Call SendMessage(TreeView1.hwnd, TVM-SETBKCOLOR, 0, RGB(255, 0, 0))
上面的SendMessage調(diào)用將TreeView1的背景顏色設(shè)置為紅色。
大家可能注意到了。在上面的Sendmessage函數(shù)定義中,我們將lParam定義為 ByVal lParam As Long,而不是象前面的那些范例那樣定義為Any或者String類型,關(guān)于這個(gè)問題,我會(huì)在最后的一章中做介紹。
2、設(shè)置樹型列表控件標(biāo)題行高度
利用TVM_SETITEMHEIGHT消息可以設(shè)定控件的標(biāo)題行的高度,該消息的定義及調(diào)用方法如下:
定義:
Const TV_FIRST = &H1100
Const TVM-SETITEMHEIGHT = TV_FIRST + 27
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
調(diào)用:
CallSendMessage(TreeView1.hwnd, TVM-SETITEMHEIGHT, 60, 0)
上面的代碼將TreeView1的標(biāo)題行高度設(shè)置到60像素高
3、為樹型列表控件中不同的標(biāo)題行設(shè)置不同的提示
在第一期的ListBox控件介紹中,我向大家介紹了如何為列表中的每一個(gè)標(biāo)題行設(shè)置不同的提示(ToolTips),在這里為要向大家介紹如何為樹型列表控件中的每一個(gè)標(biāo)題設(shè)置不同的提示。
同ListBox控件不通,樹型列表控件中并沒有根據(jù)光標(biāo)位置獲得標(biāo)題行索引的消息,我們需要另外想辦法。在TVM類消息中有一個(gè)TVM_HITTEST消息,發(fā)送該消息可以檢測控件表面上的某一點(diǎn),如果該點(diǎn)位于一個(gè)標(biāo)題上,則返回該標(biāo)題的句柄。而利用TVM_GETITEM消息,則可以根據(jù)標(biāo)題句柄返回該標(biāo)題行的文本。所以結(jié)合利用這兩個(gè)消息可以獲取光標(biāo)所在標(biāo)題行的標(biāo)題文本。具體的范例代碼如下:
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 = &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
Private Declare Function Send MessageRef 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")
Set ndX = TreeView1.Nodes.Add("R", tvwChild, "Key1", "Node1")
Set ndX = TreeView1.Nodes.Add("Key1", tvwChild, "SubKey1", "SubNode1")
Set ndX = TreeView1.Nodes.Add("SubKey1", tvwChild, "SubKeys1", "SubNode1")
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")
End Sub
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 = SendMessageRef(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)題文本
CallSendMessageRef(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
運(yùn)行上面的程序,當(dāng)光標(biāo)在TreeView1上面移動(dòng)時(shí),TreeView1的ToolTips就會(huì)根據(jù)光標(biāo)所在的不同標(biāo)題行而變動(dòng)。
以上程序在Win98、Win2000,VB6下運(yùn)行通過

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产精品久久久久久久久图文区| 国内外成人在线| 亚洲五码中文字幕| 毛片基地黄久久久久久天堂| 国产一区二区在线观看视频| 成人免费高清在线| 亚洲国产日韩欧美| 欧美亚洲精品一区| 国产视频在线观看一区二区三区| 自拍偷拍欧美激情| 国产一区二区三区最好精华液| 成人av综合一区| 久久综合九色综合网站| 国产精品久久久久久久久果冻传媒 | 日韩精品一区二区三区视频 | 亚洲综合免费观看高清完整版 | 欧美精品自拍偷拍动漫精品| 中文字幕av一区 二区| 久久国产尿小便嘘嘘尿| 亚洲激情一区二区三区| 精品国精品国产| 偷拍自拍另类欧美| 国产精品s色| 日韩久久免费av| 国产在线精品一区二区夜色| 一本一本a久久| 日韩欧美一区二区在线视频| 樱花草国产18久久久久| 国产精品一区二区你懂的| 亚洲国产专区校园欧美| 久久综合九色欧美综合狠狠| 五月天婷婷综合| 亚洲精品日韩精品| 国产精品初高中害羞小美女文| 九九视频精品免费| 男人的天堂亚洲| 亚洲视频免费在线观看| 欧美韩国一区| 久久这里都是精品| 豆国产96在线|亚洲| 日韩一级免费观看| 国产日韩欧美在线播放不卡| 久久亚洲综合色一区二区三区| 久久99精品一区二区三区三区| 久久久久久一区二区| 亚洲成人自拍偷拍| 国产精品久久久久一区| 国产另类ts人妖一区二区| 欧美一区二区三区在线观看视频| 久久99蜜桃精品| 日韩亚洲欧美一区二区三区| 国产精品夜夜嗨| 久久亚洲精品国产精品紫薇| 国产精品初高中精品久久| 亚洲人成在线观看一区二区| 国产日韩欧美一区| 精品无人区卡一卡二卡三乱码免费卡 | 91视频com| 亚洲精品ww久久久久久p站| 在线观看免费视频综合| av不卡免费电影| 一区二区三区四区在线免费观看| 日本韩国一区二区三区视频| 国产精品自拍av| 国产三级欧美三级| 日本精品一区二区三区四区的功能| 国产一区二区主播在线| 欧美极品另类videosde| 色欲综合视频天天天| 国产·精品毛片| 亚洲欧洲韩国日本视频| 国产精品永久| 91污在线观看| 久久成人免费日本黄色| 久久久午夜电影| 在线成人免费观看| 国产美女一区| 欧美成人在线免费观看| 国产成人午夜视频| 九九热在线视频观看这里只有精品| 国产精品私人自拍| 亚洲bt欧美bt精品777| 日本一区二区视频在线| 日韩一区二区三区三四区视频在线观看| 一区在线视频观看| 欧美日韩高清免费| 欧美日韩亚洲国产精品| 风间由美一区二区三区在线观看| 精品一区二区三区欧美| 免费成人在线网站| 久久99国产精品麻豆| 精品一区免费av| 国产麻豆成人传媒免费观看| 美国精品在线观看| 国产在线精品免费av| 国产a级毛片一区| 成人app在线| 91视频免费播放| 欧美日韩精品久久| 影音先锋久久精品| 亚洲在线黄色| 欧美日韩和欧美的一区二区| 欧美成人女星排名| 中文字幕乱码日本亚洲一区二区| 亚洲少妇中出一区| 亚洲成a人片综合在线| 蜜桃视频在线一区| caoporen国产精品视频| 亚洲第一区色| 欧美日韩一区国产| 久久无码av三级| 亚洲午夜在线视频| 国产成人99久久亚洲综合精品| 99久久久久久99| 国产日韩欧美一区在线| 欧美精品欧美精品系列| 综合中文字幕亚洲| 国产综合久久久久影院| 在线欧美日韩| 欧美va亚洲va在线观看蝴蝶网| 一区二区理论电影在线观看| 国产精品99久久久久久有的能看 | 99国产一区二区三精品乱码| 国产亚洲激情| 欧美精品一区二区三区在线 | 亚洲超碰精品一区二区| 国产 欧美在线| 99国产精品久久久久久久成人热| 免费视频一区| 中文字幕国产一区二区| 蜜桃一区二区三区四区| 国产一区欧美| 日韩午夜激情视频| 一二三区精品福利视频| 国产成人av一区二区三区在线观看| 在线免费观看一区二区三区| 制服丝袜一区二区三区| 日韩中文字幕亚洲一区二区va在线| 女人香蕉久久**毛片精品| 日本久久一区二区三区| 亚洲国产日韩一区二区| 国产真实久久| 久久在线视频| 偷偷要91色婷婷| 最新国产乱人伦偷精品免费网站| 日韩欧美国产综合一区| 韩日av一区二区| 欧美影视一区在线| 麻豆久久久久久| 欧美在线free| 久国产精品韩国三级视频| 色94色欧美sute亚洲13| 免费的成人av| 欧美一区二区三区在线| www.在线欧美| 欧美国产禁国产网站cc| 欧美激情亚洲| 一区二区三区中文字幕精品精品| 亚洲精品乱码| 秋霞电影一区二区| 3d成人h动漫网站入口| 懂色av中文字幕一区二区三区| 日韩欧美视频一区| 91老师国产黑色丝袜在线| 综合久久久久久| 欧美日韩综合色| 欧美日一区二区三区在线观看国产免| 国产欧美一区二区精品婷婷| 国产日韩一区二区三区| 国产精品一区二区三区网站| 2023国产精华国产精品| 在线综合欧美| 成人蜜臀av电影| 亚洲第一久久影院| 欧美电影免费观看高清完整版在线观看 | 玖玖九九国产精品| 中文字幕国产一区| 国产三级精品视频| 色香蕉久久蜜桃| 黄色亚洲大片免费在线观看| 精品在线亚洲视频| 亚洲精品高清视频在线观看| 日韩视频一区二区三区在线播放| 国产在线一区二区三区四区 | 麻豆久久久久久| 亚洲女同一区二区| 国产欧美一区二区三区沐欲 | 亚洲色图丝袜美腿| 精品免费国产一区二区三区四区| 久久精品日韩欧美| 亚洲精品欧美精品| 欧美连裤袜在线视频| 99久久er热在这里只有精品15 | 精品国产污污免费网站入口| 久久精品中文字幕一区二区三区| 国产精品大全| 欧美日韩喷水| 91免费看片在线观看| 岛国一区二区三区| 国产成人福利片|