| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 857 人关注过本帖
标题:非常怪的scalemode的问题求教.
只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
 问题点数:0 回复次数:6 
非常怪的scalemode的问题求教.
非常怪的scalemode的问题求教.
我想在窗体的resize事件中控制组合框的长度,用到api函数,可是为什么使用movewindow函数,scalemode必须设置成像素才行呢?如果设成缇的话,根本组合框就无法显示出来,真是怪了.请大家指教,代码如下:

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


Private Sub Command1_Click()
MsgBox ScaleMode

End Sub

Private Sub Form_Load()
Dim i As Integer
For i = 1 To 50: Combo1.AddItem Format$(i): Next i
End Sub

Private Sub Form_Resize()
Dim combo_height As Integer
Dim form_mode As Integer

form_mode = ScaleMode
ScaleMode = vbPixels '使用这一句正常
'ScaleMode = vbTwips '使用这一句则无法显示出组合框,而且每运行一次resize事件,组合框的 left ,top属性都会变化

combo_height = ScaleHeight - Combo1.Top - 5

If MoveWindow(Combo1.hwnd, Combo1.Left, Combo1.Top, Combo1.Width, combo_height, 1) = 0 Then
MsgBox "err"
Else
MsgBox Combo1.Left & "----" & Combo1.Top
End If

ScaleMode = form_mode '恢复原来的
End Sub
搜索更多相关主题的帖子: scalemode 
2007-08-23 08:32
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
难道使用api 函数movewindow,只能以像素为单位吗?

2007-08-23 08:42
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
因为MoveWindow函数所使用的坐标系统是以像素为标准的(实际上大部分API函数都是以像素为基本坐标单位的)。

VB QQ群:47715789
2007-08-23 08:43
精灵幻境
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-7-17
收藏
得分:0 
???
为什么我的电脑上测试一下能显示出来????'ScaleMode = vbTwips的值为10000左右比像素大了很多(像素为44 88)
但是第二次改变会显示错误

还有,resize不是窗体改变的事件吗??
为什么我的鼠标还没有完成动作就已经被msgbox打断了???
2007-08-23 10:26
精灵幻境
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2006-7-17
收藏
得分:0 
补充一下Twips时确实看不见combo


但是为什么在form_load的时候也会出现msgbox???
2007-08-23 10:29
slore
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:1108
专家分:0
注 册:2005-7-1
收藏
得分:0 
我运行没有效果啊,comb没有变……

form_load

窗体从没有到有,你所size变了麽?
最小化,也变。

快上课了……
2007-08-23 10:47
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
收藏
得分:0 
我运行没有效果啊,comb没有变……

form_load

窗体从没有到有,你所size变了麽?
最小化,也变。


对了,我是将组合框放在框架中了,如果直接放在窗体上是不会有问题的。
但是放在frame框架中,就会出现我说的问题了。


2007-08-23 16:29
快速回复:非常怪的scalemode的问题求教.
数据加载中...
 
   



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

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