谁愿意帮我调一段VB代码?就一个函数目的是创建一个listview
'问题是我不能靠拖动它的caption来移动,并且你看看最小化的图标也不对,而同样用VC创建的就没这问题
Public Const WS_VISIBLE = &H10000000
Public Const WS_CHILD = &H40000000
Public Const WS_OVERLAPPED = &H0&
Public Const WS_CAPTION = &HC00000 ' WS_BORDER Or WS_DLGFRAME
Public Const WS_SYSMENU = &H80000
Public Const WS_THICKFRAME = &H40000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_POPUP = &H80000000
Public Const WS_OVERLAPPEDWINDOW = (WS_OVERLAPPED Or WS_CAPTION Or WS_SYSMENU Or WS_THICKFRAME Or WS_MINIMIZEBOX Or WS_MAXIMIZEBOX)
Public Const LVS_REPORT = &H1
Public Const LVS_NOSORTHEADER = &H8000
Public Const LVS_EX_FLATSB = &H100
Public Const LVS_EX_FULLROWSELECT = &H20
Public Const LVM_FIRST = &H1000
Public Const LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54
Public Const LVM_INSERTCOLUMN = LVM_FIRST + 27
Public Const HWND_TOP = 0
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2
Public Const SWP_NOOWNERZORDER = &H200 ' Don't do owner Z ordering
Public Const LVCF_FMT = &H1
Public Const LVCF_WIDTH = &H2
Public Const LVCF_TEXT = &H4
Public Const LVCF_SUBITEM = &H8
Public Const LVCFMT_LEFT = &H0
Public Const GWL_STYLE = (-16)
Public Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
Public Sub CreateAListView(ByVal hParentWnd As Long)
On Error GoTo error
Dim dwStyle As Long
dwStyle = WS_VISIBLE Or WS_CHILD Or LVS_REPORT Or LVS_NOSORTHEADER Or WS_OVERLAPPEDWINDOW
Dim hListWnd As Long
hListWnd = CreateWindowEx(ByVal 0, "SysListView32", "ListView", ByVal (WS_VISIBLE Or WS_CHILD), ByVal 0, ByVal 0, ByVal 400, ByVal 300, ByVal hParentWnd, ByVal 1000, ByVal App.hInstance, ByVal 0)
'dwStyle = GetWindowLong(hListWnd, GWL_STYLE)
SetWindowLong ByVal hListWnd, ByVal GWL_STYLE, ByVal 0
SetWindowLong ByVal hListWnd, ByVal GWL_STYLE, ByVal dwStyle
SendMessage ByVal hListWnd, ByVal LVM_SETEXTENDEDLISTVIEWSTYLE, ByVal 0, ByVal LVS_EX_FLATSB Or LVS_EX_FULLROWSELECT
SetWindowPos ByVal hListWnd, ByVal HWND_TOP, ByVal 0, ByVal 0, ByVal 0, ByVal 0, ByVal (SWP_NOACTIVATE Or SWP_NOSIZE Or SWP_NOMOVE Or SWP_NOOWNERZORDER)
EnableWindow ByVal hListWnd, ByVal 1
Exit Sub
error:
MsgBox Err.Description
End Sub