| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2439 人关注过本帖
标题:求教高手 :关于改变ComboBox控件下拉列表长度的Bug
只看楼主 加入收藏
treea
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-3-11
收藏
 问题点数:0 回复次数:2 
求教高手 :关于改变ComboBox控件下拉列表长度的Bug
代码:
Option Explicit
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
Public Sub SizeCombo(CBobj As ComboBox, ByVal newHeight As Long)
    Dim cLeft As Long
    Dim cTops As Long
    Dim cWidths As Long
    Dim oldMode As Long   
    oldMode = CBobj.Parent.ScaleMode
    CBobj.Parent.ScaleMode = vbPixels   
    cLeft = CBobj.Left
    cTops = CBobj.Top
    cWidths = CBobj.Width   
    CBobj.Parent.ScaleMode = oldMode
    MoveWindow CBobj.hwnd, cLeft, cTops, cWidths, newHeight, 1
End Sub

程序应用在主界面上没有问题,如图:
图片附件: 游客没有浏览图片的权限,请 登录注册


但一旦置入其它的控件中,如:SSTab、Frame、PictureBox等控件中,执行程序后,就会不能在原位置显示,如图:
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册


已经想过很多办法,都没法解决,请教高手不吝赐教,先行感谢!
搜索更多相关主题的帖子: ComboBox 控件 ByVal Long Dim 
2019-06-03 23:42
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:206
专家分:1346
注 册:2017-8-9
收藏
得分:0 
回复 楼主 treea
我试了一下Frame,发现Frame控件是没有ScaleMode属性,所以我猜问题应该出在这里。
经测试,如下修改就没问题了:
cLeft = CBobj.Left / 15
cTops = CBobj.Top / 15
cWidths = CBobj.width / 15


图片附件: 游客没有浏览图片的权限,请 登录注册

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-06-04 10:36
treea
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-3-11
收藏
得分:0 
经过测试无问题,谢谢楼上的指点

2019-06-04 12:02
快速回复:求教高手 :关于改变ComboBox控件下拉列表长度的Bug
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016106 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved