如何解决程序适应不同分辨率的问题,大家帮我出出主意!

freehorse_1981 2003-03-21 08:05:08
我的程序是在1024*768下做的,如果拿到800*600下则有的窗体的部分控件将不可见,并且窗体也变形了,请问这种情况怎么解决,大家都是怎么解决这种情况的?帮我出出主意吧!我特别着急!
...全文
33 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
yhq2002 2003-05-11
  • 打赏
  • 举报
回复
up
yhq2002 2003-05-11
  • 打赏
  • 举报
回复
up
freehorse_1981 2003-04-12
  • 打赏
  • 举报
回复
我按照上面的去做了,但是有一个问题,始终无法解决,就是我用了一个sstab控件,但是只有tab1上的控件的大小调整过来了,而tab2上的就干脆出不来了,不知道这是怎么回事儿啊
yem9 2003-03-28
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/1527/1527360.xml?temp=3.855532E-02
这个问题我问过,就是上面这个地址,去看看
我解决了
ksmark 2003-03-28
  • 打赏
  • 举报
回复
我也想要一份,能发给我吗?
mark_ma@pub.sz.jsinfo.net
bluedou 2003-03-28
  • 打赏
  • 举报
回复
不好意思,这几天比较忙,明天就整理给你们。
我忙的时候很少进来这里瞧瞧,大家如果有什么问题可以发邮件给我。
lilac7460@sina.com
我用VB做过很多商业软件,对VB和SQL都满熟悉的。
freehorse_1981 2003-03-24
  • 打赏
  • 举报
回复
是不是我没有表达清楚啊,我的意思是说,我不是在一固定分辨率下拖动窗体改变大小,而是说我的窗体拿给用户用的时候,有可能是不同的分辨率,1024 * 768,或者是800* 600 ,我现在是在1024* 768下完成的,我想调整一下,使得它放在800* 600下也好使。请问我应该怎么做?
chenyu5188 2003-03-23
  • 打赏
  • 举报
回复
UP

我也想要一个:
4y4ycoco@163.com
freehorse_1981 2003-03-23
  • 打赏
  • 举报
回复
wwj0496@sina.com
谢谢!!!
zyl910 2003-03-23
  • 打赏
  • 举报
回复

Resize 事件


当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生。(例如,一个窗体被最大化、最小化或被还原。)

语法

Private Sub Form_Resize( )

Private Sub object_Resize(height As Single, width As Single)

Resize 事件语法包括下列部分:

部分 描述
object 一个对象表达式,其值是“应用于”列表中的一个对象。
height 指定控件新高度的数。
width 指定控件新宽度的数。


说明

当父窗体调整大小时,可用 Resize 事件过程来移动控件或调整其大小。也可用此事件过程来重新计算那些变量或属性,如:ScaleHeight 和 ScaleWidth 等,它们取决于该窗体的尺寸。如果在调整大小时想要保持图形的大小与窗体的大小成比例,可在一个 Resize 事件中通过使用 Refresh 方法调用 Paint 事件。

任何时候只要 AutoRedraw 属性被设置为 False 而且窗体被调整大小,Visual Basic 也会按 Resize 和 Paint 的顺序调用相关的事件。当给这些相关事件附加过程时,要确保它们的操作不会互相冲突。

当一个 OLE 容器控件的 SizeMode 属性被设置为 2(自动调大小)时,该控件自动根据所显示的包含于该控件之中的对象的大小来调整其大小。如果所显示的对象的大小发生变化,则该控件自动重调其大小以适应该对象的变化。当这种情况出现时,为该对象调用 Resize 事件会在 OLE 容器控件被重调大小之前发生。height 和 width 部分指示该对象显示的最佳大小(这个尺寸由创建该对象的应用程序决定)。可通过在 Resize 事件中改变 height 和 width 部分的值来按不同的尺寸设定控件的大小。












Resize 事件示例
本例在任何调整窗体大小时的时候,都将自动调整一个 TextBox 控件的大小以填充该窗体。要尝试这个例子,可以将代码粘贴到包含 TextBox 的窗体声明部分。 设置 TextBox 控件的 MultiLine 属性为 True,ScrollBars 属性为 3,BorderStyle 属性为 0,然后按F5键并调整窗体大小。

Private Sub Form_Load ()
Text1.Text = "" ' 清除文本。
End Sub

Private Sub Form_Resize ()
Text1.Move 0,0, ScaleWidth, ScaleHeight
End Sub

freehorse_1981 2003-03-23
  • 打赏
  • 举报
回复
拜托了
bluedou 2003-03-22
  • 打赏
  • 举报
回复
比较合理的办法是将控件放在一个容器里,如picture控件中,容器内控件的位置和大小都是相对容器定义的。在 Form_Resize 事件中调整容器的大小,刷新容器内控件。
bluedou 2003-03-22
  • 打赏
  • 举报
回复
呵呵,不好意思,没仔细看你的问题。
我一般是这样实现:
1、main()启动;
2、在main()中判断分辨率(有API可以调用);
3、根据分辨率调整picture容器的大小,根据容器大小改变控件大小;
4、如果相同的控件很多,可以采用控件数组;
5、你可以写一个Sub或Function,调整控件的大小和位置。在设置控件大小和位置时,采用picture的相对位置。
6、要示例,留下地址。
freehorse_1981 2003-03-22
  • 打赏
  • 举报
回复
请问容器内控件如何刷新呢?
是不是我必须手动的设置每个容器控件的位置?并且,我觉得from_resize是在调整窗体大小的时候才触发的事件,而我是使我的程序在各中分辨率下都能正常显示,这也触发form_resize事件吗?
Tenner 2003-03-21
  • 打赏
  • 举报
回复
比如说你有一个按钮要放在窗口距左与上都是1/4的地方,就在Form_Resize中加入:

xxxx.Left = Me.ScaleWidth / 4
xxxx.Top = Me.ScaleHeight /4

其它也一样,就是手动定位
freehorse_1981 2003-03-21
  • 打赏
  • 举报
回复
能不能详细点儿啊,我对这方面不怎么懂。麻烦了!
Tenner 2003-03-21
  • 打赏
  • 举报
回复
在 Form_Resize 事件中改变控件的位置

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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