如何禁止拖动改变ListView的列宽?

hellrock 2004-03-12 05:20:58
rt
...全文
464 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hisofty 2004-03-16
  • 打赏
  • 举报
回复
这里
Prevent ColumnHeader sizing
http://www.vbcodemagician.dk/tips/cctrls_lvpreventresize.htm
hellrock 2004-03-16
  • 打赏
  • 举报
回复
谢谢

怎么不能结帖?
supergreenbean 2004-03-15
  • 打赏
  • 举报
回复
Option Explicit
Dim lHeaderhWnd As Long

Private Sub Form_Load()
lHeaderhWnd = FindWindowEx(ListView1.hwnd, 0&, "msvb_lib_header", vbNullString)

glDefWindowProc = SetWindowLong(lHeaderhWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Private Sub Form_Unload(Cancel As Integer)
If glDefWindowProc <> 0 Then
SetWindowLong lHeaderhWnd, GWL_WNDPROC, glDefWindowProc
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 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 Const GWL_WNDPROC = (-4)

Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Public Const HDM_FIRST = &H1200&
Public Const HDM_GETITEMRECT = HDM_FIRST + 7&

Public glDefWindowProc As Long

Public Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error Resume Next
Select Case uMsg
Case GETITEMRECT'攔截HDM_GETITEMRECT
WindowProc=0
Case &H200, &H201, &H202, &H203, &H204, &H205, &H206, &H207, &H208, &H209
WindowProc = 0
Case Else
WindowProc = CallWindowProc(glDefWindowProc, hwnd, uMsg, wParam, lParam)
End Select

End Function

supergreenbean 2004-03-15
  • 打赏
  • 举报
回复
//綠頭別老是說什麼子類,看著頭都大呀
呵呵,有时候非着这样不行的事情,我也没办法啊
daisy8675 2004-03-15
  • 打赏
  • 举报
回复
樓上的不要問偶,偶對api一向不熟悉的,要用了就查書用哪個api然後查瀏覽器看怎麼用

x0554 2004-03-15
  • 打赏
  • 举报
回复
為了限定ListCtrl最後一欄的移動,我想攔截HDM_GETITEMRECT,可是不知道在那裡攔截.請高手指點!
daisy8675 2004-03-15
  • 打赏
  • 举报
回复
怎麼感覺還是不對

綠頭別老是說什麼子類,看著頭都大呀
supergreenbean 2004-03-14
  • 打赏
  • 举报
回复
lHeaderhWnd = FindWindowEx(ListView1.hwnd, 0&, "msvb_lib_header", vbNullString)
hellrock 2004-03-14
  • 打赏
  • 举报
回复
listview有header对象吗?VB里好象没有哦。

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧