怎样禁止用户调整Listview的列宽?
谢谢!
谢谢!
解决方案 »
- MSFLEXGRID的问题
- 调用外部程序出问题
- 在线等待:各位:在VB中队XML文件操作的时候,利用哪种方法生成XML中的头如下:(<?xml version="1.0" encoding="gb2312" ?> )谢谢
- 急请高手帮忙,问好多人无解啊!!
- 求购QQ,ICQ或类似功能的原代码
- 关于计算"字节数"的问题???
- 如何将查询的结果转换为word表格
- 有关Document控件的问题,急急急 !!!!!!!!!!!!
- 关于记录定位的问题,我想求教各位高人!我很着急,请求了
- 我的VB6为什么常常出现非法操作
- 如何取消MDI主窗体的最大化按钮,在线等!
- VB6中的ADODC和Datagrid 的查询问题!
Dim li As ListItem
Dim lCount As Long
With ListView1.ListItems
For lCount = 1 To 100
Set li = .Add(, , lCount)
li.SubItems(1) = lCount
li.SubItems(2) = lCount
Next
End With
glLVDefWindowProc = SetWindowLong(ListView1.hwnd, GWL_WNDPROC, AddressOf LVWindowProc)
End Sub
Private Sub Form_Unload(Cancel As Integer)
If glLVDefWindowProc Then
'结束子类处理
SetWindowLong ListView1.hwnd, GWL_WNDPROC, glLVDefWindowProc
glLVDefWindowProc = 0
End If
End Sub
Option Explicit
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetClassLong Lib "user32" Alias "SetClassLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function DefWindowProc Lib "user32.dll" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Const GWL_WNDPROC = (-4)
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSource As Any, ByVal dwLength As Long)
Public Type NMHDR
hwndFrom As Long ' Window handle of control sending message
idFrom As Long ' Identifier of control sending message
code As Long ' Specifies the notification code
End Type
Public Type NMHEADER
hdr As NMHDR
iItem As Long
iButton As Long
pitem As Long
End Type
Public Const WM_NOTIFY& = &H4E
Public Const HDN_FIRST = -300&
Public Const HDN_LAST = -399&
Public Const HDN_ITEMCHANGINGA As Long = HDN_FIRST - 0
Public Const HDN_ITEMCHANGINGW As Long = HDN_FIRST - 20
Public Const HDN_ITEMCHANGEDA As Long = HDN_FIRST - 1
Public Const HDN_ITEMCHANGEDW As Long = HDN_FIRST - 21
Public Const HDN_ITEMCLICKA As Long = HDN_FIRST - 2
Public Const HDN_ITEMCLICKW As Long = HDN_FIRST - 22
Public Const HDN_ITEMDBLCLICKA As Long = HDN_FIRST - 3
Public Const HDN_ITEMDBLCLICKW As Long = HDN_FIRST - 23
Public Const HDN_DIVIDERDBLCLICKA As Long = HDN_FIRST - 5
Public Const HDN_DIVIDERDBLCLICKW As Long = HDN_FIRST - 25
Public Const HDN_BEGINTRACKA As Long = HDN_FIRST - 6
Public Const HDN_BEGINTRACKW As Long = HDN_FIRST - 26
Public Const HDN_ENDTRACKA As Long = HDN_FIRST - 7
Public Const HDN_ENDTRACKW As Long = HDN_FIRST - 27
Public Const HDN_TRACKA As Long = HDN_FIRST - 8
Public Const HDN_TRACKW As Long = HDN_FIRST - 28
Public Const HDN_GETDISPINFOA As Long = HDN_FIRST - 9
Public Const HDN_GETDISPINFOW As Long = HDN_FIRST - 29
Public Const HDN_BEGINDRAG As Long = HDN_FIRST - 10
Public Const HDN_ENDDRAG As Long = HDN_FIRST - 11
Public Const HDN_FILTERCHANGE As Long = HDN_FIRST - 12
Public Const HDN_FILTERBTNCLICK As Long = HDN_FIRST - 13
Public glLVDefWindowProc As Long
Public Function LVWindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_NOTIFY
Dim tHD As NMHDR
CopyMemory tHD, ByVal lParam, Len(tHD)
Select Case tHD.code
Case HDN_BEGINTRACKA, HDN_DIVIDERDBLCLICKA, HDN_BEGINDRAG, HDN_TRACKA
Debug.Print "1"
LVWindowProc = 1
Exit Function
End Select
End Select
LVWindowProc = CallWindowProc(glLVDefWindowProc, hwnd, uMsg, wParam, lParam)
End Function