关于分辨率的问题。

Fanks 2003-01-18 11:06:24
改变分辨率已经有很多帖子,但本人现在还存在一个问题。在分辨率提高后(Win98),原来在屏幕最下端的任务栏跑到了屏幕中间(可以手工拖到底端),而且图标排列也没有变化(自动排列),即便手工排列也和低分辨率时一样,似乎桌面并没有变大,不知何故,求解赠分。
...全文
25 23 打赏 收藏 举报
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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)
发帖
VB基础类

7617

社区成员

VB 基础类
社区管理员
  • VB基础类社区
加入社区
帖子事件
创建了帖子
2003-01-18 11:06
社区公告
暂无公告