如何得到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)