想让combo box具有横向滚动条,怎么做?
解决方案 »
- 关于VB使用驱动读取内存,求助!
- SQL语句问题
- 看一看我的程序有什么错误!
- 请高手指点,在线等待!
- 在VB中如何与服务器上的Oracle服务建立连接
- 请问如何快速掌握ASP技术?项目催得紧啊,请指点,谢谢!
- 关于ADO的应用,如果有这样的语句(if isexit(select* from tbl1) ),在ADo中如何应用?
- Treeview使用中节点的处理问题。
- 谁能告诉我activebar控件的用法?
- to: songyangk(sky) 你別走啊!!救急
- 关于如何在WIN2000系统中屏闭掉所有的键盘键!
- 一般定义在模块里的 "public *** as new ***" 到底是什么意思?
可用sendmessage combo1.hwnd,CB_SETDROPPEDWIDTH,400,0 把下拉列表设成足够宽,不需要用横向滚动条。
说的对 呀 你是不是显示不过来了。 ------------------------
Private Declare Function MoveWindow Lib "user32" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long
Const CB_SETDROPPEDWIDTH = &H160' 设置ComboBox下拉选单长度函数
Public Sub SetComboHeight(ComboBox_Obj As ComboBox, NewHeight As Long)
Dim OldScaleMode As Integer
If TypeOf ComboBox_Obj.Parent Is Frame Then Exit Sub
' 改变ComboBox控件的容器的坐标度量单位为象素
OldScaleMode = ComboBox_Obj.Parent.ScaleMode
ComboBox_Obj.Parent.ScaleMode = vbPixels
' 重新定义ComboBox的尺寸
MoveWindow ComboBox_Obj.hwnd, ComboBox_Obj.Left, _
ComboBox_Obj.Top, ComboBox_Obj.Width, NewHeight, 1
' 恢复ComboBox控件的容器的坐标度量单位
ComboBox_Obj.Parent.ScaleMode = OldScaleMode
End Sub' 设置ComboBox下拉选单宽度函数
Public Sub SetComboWidth(ComboBox_Obj As ComboBox, NewWidth As Long)
' NewWidth 是宽度,单位是 pixels
SendMessage ComboBox_Obj.hwnd, CB_SETDROPPEDWIDTH, NewWidth, 0
End SubPrivate Sub Form_Load()
Dim i As Integer
' 向ComboBox添加项
For i = 0 To 40
Demo_Combo.AddItem ("This is the long Item " + CStr(i))
Next i
End Sub' 改变ComboBox下拉选单长度和宽度
Private Sub Change_But_Click()
Call SetComboHeight(Demo_Combo, 300)
Call SetComboWidth(Demo_Combo, 200)
End Sub