LISTVIEW中item与图片邦定,但是item可以在其范围内拖动,怎样可以禁止拖动?
解决方案 »
- 求一个基于win32的解压缩动态库
- 如何浏览,并打开文件,和windows打开文件一样
- VB执行EXECUTE的SQL语句问题???
- 求 VB 6.0中 DataGrid 的使用高手指教
- 请问UDP怎么判断用户是否在线
- 简单的SQL语句
- vb6、ado、控件datagrid绑定recordset,请问用那种方法可打印datagrid中数据?
- 求救datareport问题(十万火急)
- vb5.0是不是不能连接Access2000这个版本数据库,如要连接怎么做!请赐教,谢谢!!
- 一个困扰我好久的问题,关于CrystalReport的字体,帮我顶的也给分!!
- 求助:VB用WindowsMediaPlayer控件播放MTV歌曲,用程序该如何切换声道??
- 移动何联通能够通信,他们之间是怎么连接的呀?是不是哪里有个公共的接口?
Private Sub Form_Load()
Dim li As ListItem
Dim lCount As Long
'Call InitExceptionHandler
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 SubPrivate Sub Form_Unload(Cancel As Integer)
If glLVDefWindowProc Then
'结束子类处理
SetWindowLong ListView1.hwnd, GWL_WNDPROC, glLVDefWindowProc
glLVDefWindowProc = 0
End IfEnd Sub
'----main.bas--------
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 TypePublic Type NMHEADER
hdr As NMHDR
iItem As Long
iButton As Long
pitem As Long
End TypePublic Const WM_NOTIFY& = &H4EPublic 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 - 13Public glLVDefWindowProc As LongPublic 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