首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么得到ListView控件,调整列头宽度时的产生的事件

2012-04-02 
如何得到ListView控件,调整列头宽度时的产生的事件 在调整ListView控件列头宽度时的,为什么没有产生事件的

如何得到ListView控件,调整列头宽度时的产生的事件

在调整ListView控件列头宽度时的,为什么没有产生事件的呢?难道这个控件没有,
调整调整列头宽度时事件?


[解决办法]
在MSDN可以看到
HDN_TRACK Notification
Notifies a header control 's parent window that the user is dragging a divider in the header control. This notification message is sent in the form of a WM_NOTIFY message.

这个有点复杂,当然也是要用到Subclassing

先截取WM_NOTIFY消息,然后对比LPNMHEADER结构中的code

HDN_BEGINTRACKA '开始
HDN_TRACKA '调整ing
HDN_ENDTRACKA '结束

。。。然后就看代码吧

Case WM_NOTIFY

Call CopyMemory(uNMH, ByVal lParam, Len(uNMH))

If (uNMH.hwndFrom = m_hHeader) Then

If (m_hHeader) Then

With uHDHTI

Call GetCursorPos(.pt)
Call ScreenToClient(m_hHeader, .pt)
Call SendMessage(m_hHeader, HDM_HITTEST, 0, uHDHTI)

Select Case uNMH.code

Case HDN_TRACKA
Debug.Print "调整ing... "


更多代码可以参考
http://ww.nn.cn/sydinar/programming/uclistview.rar (40kb)

热点排行