RT,在List模式下时,似乎无法在界面上通过拖动来调整项的显示宽度。这使我无法看到项的全部内容。
请问如何通过代码来设置项的显示宽度?
请问如何通过代码来设置项的显示宽度?
解决方案 »
- vb数值型存储的问题
- 看了帖子后,很生气
- 大家帮我看看,这个MSHFlexGrid的ColWidth(i)返回值都是 -1 啊???
- 巨难问题!
- MSflexGrid控件里怎么样用鼠标滚轮控制滚动条滚动?
- 如何将Datagrid控件内的数据传给DataReport?
- 纪录中的变量能用保留字吗
- 串行通信问题--在计算机1端,我发送16进制的字符如(“EB”),在计算机2端接收到的ASCII是“E","F",16进制数为45,46,why??
- 哪里有较好的"进销存"软件的源代码?紧急需要!!!(再次给分100)
- 调用excell时的关闭问题
- 用StretchBlt 打印图形时电脑就死机
- 水晶报表参数传递空值问题!
Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LVM_FIRST = &H1000
Private Const LVM_GETCOLUMNWIDTH = LVM_FIRST + 29
Private Const LVM_SETCOLUMNWIDTH = LVM_FIRST + 30Private Sub btnTmp_Click()
Dim LVWidth As Long
LVWidth = SendMessage(lvw.hwnd, LVM_GETCOLUMNWIDTH, 0, 0)
Debug.Print LVWidth
'111 宽度
SendMessage lvw.hwnd, LVM_SETCOLUMNWIDTH, 0, ByVal 111
LVWidth = SendMessage(lvw.hwnd, LVM_GETCOLUMNWIDTH, 0, 0)
Debug.Print LVWidth
End SubPrivate Sub Form_Load()
Call Init_Lvw
End SubPrivate Sub Init_Lvw()
With Me.lvw
.View = lvwList
.LabelEdit = lvwManual
End With
With Me.lvw.ListItems
.Add 1, , "lala..lala..lala..", , 2
End With
End Sub
请问只能通过API了么?我用了您的方法,可是没效果,我无法确定是函数调用有问题还是此函数不能用来设置项显示宽度.因为debug的输出也很奇怪.代码如下:Debug.Print (SendMessage(lstView.hwnd, LVM_GETCOLUMNWIDTH, 0, 0))
SendMessage lstView.hwnd, LVM_SETCOLUMNWIDTH, 0, ByVal 100
Debug.Print (SendMessage(lstView.hwnd, LVM_GETCOLUMNWIDTH, 0, 0))Debug输出(多次执行):
24
50
24
24
24
50 24
50
24
30 50 -6034 24 24
24 100
lstView.ColumnHeaderIcons = Me.ImageList1现在debug输出已经正常了,可是项的宽度依然没变呢...