VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 2963|回复: 4

[求助] 怎么修改组合框(Combo Box)下拉菜单的高度?

[复制链接]
发表于 2015-7-18 22:28:16 | 显示全部楼层 |阅读模式
' Combo Box messages
Const CB_GETEDITSEL = &H140
Const CB_LIMITTEXT = &H141
Const CB_SETEDITSEL = &H142
Const CB_ADDSTRING = &H143
Const CB_DELETESTRING = &H144
Const CB_DIR = &H145
Const CB_GETCOUNT = &H146
Const CB_GETCURSEL = &H147
Const CB_GETLBTEXT = &H148
Const CB_GETLBTEXTLEN = &H149
Const CB_INSERTSTRING = &H14A
Const CB_RESETCONTENT = &H14B
Const CB_FINDSTRING = &H14C
Const CB_SELECTSTRING = &H14D
Const CB_SETCURSEL = &H14E
Const CB_SHOWDROPDOWN = &H14F
Const CB_GETITEMDATA = &H150
Const CB_SETITEMDATA = &H151
Const CB_GETDROPPEDCONTROLRECT = &H152
Const CB_SETITEMHEIGHT = &H153
Const CB_GETITEMHEIGHT = &H154
Const CB_SETEXTENDEDUI = &H155
Const CB_GETEXTENDEDUI = &H156
Const CB_GETDROPPEDSTATE = &H157
Const CB_FINDSTRINGEXACT = &H158
Const CB_SETLOCALE = &H159
Const CB_GETLOCALE = &H15A
Const CB_MSGMAX = &H15B


CB_SETITEMHEIGHT 改变的是组合框的高度,不是下拉菜单的高度。因此:
  1. Option Explicit

  2. Private Declare Function SendMessage Lib _
  3.                           "USER32" Alias "SendMessageA" _
  4.                           (ByVal hwnd As Long, ByVal Msg As Long, _
  5.                           ByVal wParam As Long, ByVal lParam As Long) As Long

  6. Private Const CB_ERR As Long = -1
  7. Private Const CB_SETITEMHEIGHT As Long = &H153

  8. Private Sub Command1_Click() '稍小一点的高度
  9.   SendMessage Me.Combo1.hwnd, CB_SETITEMHEIGHT, -1, 50
  10.   Combo1.Refresh
  11. End Sub

  12. Private Sub Command2_Click() '稍大一点的高度
  13.   SendMessage Me.Combo1.hwnd, CB_SETITEMHEIGHT, -1, 100
  14.   Combo1.Refresh
  15. End Sub
复制代码
不是我要的。
发表于 2015-7-21 14:50:59 | 显示全部楼层
MoveWindow Combo1.hwnd, Combo1.Left / Screen.TwipsPerPixelX, Combo1.Top / Screen.TwipsPerPixelY, Combo1.Width / Screen.TwipsPerPixelX, 600, 1

这样下拉部分更高,容纳更多的下拉项

SendMessage Me.Combo1.hwnd, CB_SETITEMHEIGHT, ByVal 0, ByVal 32

这样设置单个下拉项的高度为32像素

评分

参与人数 1威望 +4 收起 理由
VBProFan + 4 很给力

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2015-7-25 13:46:43 | 显示全部楼层
MoveWindow
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-26 15:45:22 | 显示全部楼层
hpygzhx520 发表于 2015-7-21 14:50
MoveWindow Combo1.hwnd, Combo1.Left / Screen.TwipsPerPixelX, Combo1.Top / Screen.TwipsPerPixelY, Com ...

这种做虽然下拉菜单变高了,但是每一项的高度也变高了,显示的项数还是不变。不是我想要的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-26 15:48:27 | 显示全部楼层
hpygzhx520 发表于 2015-7-21 14:50
MoveWindow Combo1.hwnd, Combo1.Left / Screen.TwipsPerPixelX, Combo1.Top / Screen.TwipsPerPixelY, Com ...

啊,说错了,不好意思!原来是我测试时加的数据不够多。MoveWindow 就是我想要的。你的回答完美地解决了我的问题,非常感谢!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2022-7-1 21:49

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表