关于分辨率的问题。

Fanks 2003-01-18 11:06:24
改变分辨率已经有很多帖子,但本人现在还存在一个问题。在分辨率提高后(Win98),原来在屏幕最下端的任务栏跑到了屏幕中间(可以手工拖到底端),而且图标排列也没有变化(自动排列),即便手工排列也和低分辨率时一样,似乎桌面并没有变大,不知何故,求解赠分。
...全文
74 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
13161795500 2003-02-10
  • 打赏
  • 举报
回复
up!抢分!
since1990 2003-01-24
  • 打赏
  • 举报
回复
xue xi
Fanks 2003-01-24
  • 打赏
  • 举报
回复
谢谢dengwei007(邓蔚)和zhou_huanxi(阿周)两位,但到目前为止,用刷新桌面的办法还是无法解决问题,急呀...,难道只有少数机子会出现这个问题吗?
along 2003-01-24
  • 打赏
  • 举报
回复
98 me 下涮新桌面可用如下方法:
Shell "rundll32 user,repaintscreen"
pandengzhe 2003-01-24
  • 打赏
  • 举报
回复
重装,看看是硬件还是软件问题
dengwei007 2003-01-23
  • 打赏
  • 举报
回复
是window的桌面没有根据的程序的调整而自动refresh的缘故
你可以自己给它发个刷新消息
sob 2003-01-23
  • 打赏
  • 举报
回复
密切GZing
along 2003-01-23
  • 打赏
  • 举报
回复
呵呵,发错地方了。
along 2003-01-23
  • 打赏
  • 举报
回复
给你一代码请你尝试,效果还过得去
VB6 SP5 WINDOWSME下调 试通过
Private Sub Form_Load()
ResiZe1 Me
End Sub


'检查屏幕的分辨率确定窗体的大小----保证窗体在不同分辨率下大小近似不变
Private Function CheckRez(pixelWidth As Long, pixelHeight As Long) As Boolean

Dim lngTwipsX As Long
Dim lngTwipsY As Long

lngTwipsX = pixelWidth * 15
lngTwipsY = pixelHeight * 15

If lngTwipsX <> Screen.Width Then
CheckRez = False
Else
If lngTwipsY <> Screen.Height Then
CheckRez = False
Else
CheckRez = True
End If
End If

End Function

'获取系统显示分辨率控制在不同分辨率下大小不变
'此处只列举了640X480;1024X768与800X600
'窗体在800X600时设计
'具体请应用时灵活设计
Function XRatioFun() As Single
If CheckRez(640, 480) Then
XRatioFun = 0.8

ElseIf CheckRez(1024, 768) Then
XRatioFun = 1.28

ElseIf CheckRez(800, 600) Then
XRatioFun = 1
Else
XRatioFun = 1
End If
End Function

'重定位窗体与其上的控件
Sub ResiZe1(theForm As Form)
Dim Z&
Dim xfactor!
xfactor = XRatioFun

theForm.Move theForm.Left * xfactor, theForm.Top * xfactor, _
theForm.Width * xfactor, theForm.Height * xfactor

For Z = 0 To theForm.Controls.Count - 1

'If TypeOf TheForm.Controls(Z) Is CommonDialog Then
'如果在窗体上有运行时不可见的ACTIVEX控件不要移动,比如IMAGELIST与CommonDialog等等
'If TypeOf theForm.Controls(Z) Is ImageList Then
If TypeOf theForm.Controls(Z) Is Menu Then
'菜单系统会自动处理
ElseIf TypeOf theForm.Controls(Z) Is Line Then
'直线控件不要处理
ElseIf TypeOf theForm.Controls(Z) Is DriveListBox Then

theForm.Controls(Z).Move theForm.Controls(Z).Left * xfactor, _
theForm.Controls(Z).Top, theForm.Controls(Z).Width * xfactor

ElseIf TypeOf theForm.Controls(Z) Is ComboBox Then

If theForm.Controls(Z).Style <> 1 Then

theForm.Controls(Z).Move theForm.Controls(Z).Left * xfactor, _
theForm.Controls(Z).Top * xfactor, theForm.Controls(Z).Width * _
xfactor

End If

ElseIf Not theForm.Controls(Z) Is Nothing Then

theForm.Controls(Z).Move theForm.Controls(Z).Left * xfactor, _
theForm.Controls(Z).Top * xfactor, theForm.Controls(Z).Width _
* xfactor, theForm.Controls(Z).Height * xfactor

If TypeOf theForm.Controls(Z) Is TextBox Then
theForm.Controls(Z).FontSize = theForm.Controls(Z).FontSize * xfactor
ElseIf TypeOf theForm.Controls(Z) Is Label Then
theForm.Controls(Z).FontSize = theForm.Controls(Z).FontSize * xfactor
End If

End If
Next Z

End Sub


Fanks 2003-01-23
  • 打赏
  • 举报
回复
那如何对window桌面发刷新消息呢?同时会使任务栏自动置于底边吗?
cenwangsky 2003-01-22
  • 打赏
  • 举报
回复
调字体试试
lixingyuaaa 2003-01-20
  • 打赏
  • 举报
回复
用2000吧
你说的我没有遇到过的
minajo21 2003-01-20
  • 打赏
  • 举报
回复
从大到小的时候回有这种问题,所以建议在800*600下设计窗体,在代码里控制,如果分辨率小于800*600就提示不能正常工作。
Fanks 2003-01-20
  • 打赏
  • 举报
回复
D版?此言差矣,本人使用的是正版98.
Fanks 2003-01-20
  • 打赏
  • 举报
回复
minajo21(大眼睛)同志所说的也是一种办法,但作为一个程序员来将,解决问题才是上策,回避问题只有不得已而为之,况且该界面在1024*768方式下较为合适,我很想知道问题所在。
lxcc 2003-01-20
  • 打赏
  • 举报
回复
i don't know!
Fanks 2003-01-18
  • 打赏
  • 举报
回复
如果调回为屏幕最初的分辨率则没什么问题,但加大或减小分辨率后桌面和任务栏就不正常了。
Fanks 2003-01-18
  • 打赏
  • 举报
回复
可我在两台98上都是,图标也小了,但每一列所能容纳的图标数并没有增加。
zhangxu421 2003-01-18
  • 打赏
  • 举报
回复
当从 1024*768降到800*600的时候
任务栏明显变大
图标的排列没有变化,而且几乎要溢出屏幕
zhangxu421 2003-01-18
  • 打赏
  • 举报
回复
我的98没出现类似情况呀

我从800*600升到1024*768后,
任务栏仍在最下面
图标也小了不少. (但排列的顺序还和原来一样)
加载更多回复(3)

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧