VB窗体大小根据屏幕自动调节

golden8510 2011-01-23 08:13:55
VB窗体大小根据屏幕自动调节
...全文
2522 25 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
bjjob1 2013-03-13
  • 打赏
  • 举报
回复
我目前编写的程序也遇到了这个问题,而且,编译时和生成exe文件,控件位置也不一样,晕倒
knightgy 2011-02-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 golden8510 的回复:]

剛剛發現分辨率與窗體大小有一個15倍的關係;

Fox Example:1>分辨率 1280*800 窗體最大:19200*12000
2>分辨率 1024*768 窗體最大:15360*11520
[/Quote]
对于96DPI的显示器,1像素=15缇,1280*800是指像素,窗体大小单位为缇(Twip)
几罗星人 2011-02-10
  • 打赏
  • 举报
回复
楼主,想自己的程序的窗口大小随系统的分辨率的改变而改变,很简单,下我的VB捕获系统分辨率的改变的源码,下载地址是http://download.csdn.net/user/JiLuoXingRen/all/3,资源名称是【Vb捕获屏幕分辨率的改变】。
游子 2011-01-27
  • 打赏
  • 举报
回复 1
其实这个方法已经很好了。。。支持
golden8510 2011-01-26
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 cxy5636917 的回复:]
这个对vb来说,不是件容易的事。建议做成固定大小的窗体。另外一种方法是在不同的分辨率下调整好窗体,分分辨率存为不同的文件。

通过分析word等程序,就按发现它们问什么会自动适应不同的分辨率。它们一般为上部,下部,左侧为内容区。中间为可以自动调整大小的控件(单一控件,如text,或者picture等)。这样就可以轻松调节适应不同的分辨率了。

对于vb复杂的窗体布局,个人观点:很难做到一个……
[/Quote]
你們平時是怎樣處理該問題的,

所有一般用VB作介面嗎?
cxy5636917 2011-01-26
  • 打赏
  • 举报
回复
这个对vb来说,不是件容易的事。建议做成固定大小的窗体。另外一种方法是在不同的分辨率下调整好窗体,分分辨率存为不同的文件。

通过分析word等程序,就按发现它们问什么会自动适应不同的分辨率。它们一般为上部,下部,左侧为内容区。中间为可以自动调整大小的控件(单一控件,如text,或者picture等)。这样就可以轻松调节适应不同的分辨率了。

对于vb复杂的窗体布局,个人观点:很难做到一个程序去适应不同的分辨率。
ningweidong 2011-01-25
  • 打赏
  • 举报
回复
你不如把窗口定死
golden8510 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 clear_zero 的回复:]
引用 15 楼 golden8510 的回复:

引用 12 楼 veron_04 的回复:
这个知道如何知道屏幕分辨率是关键,再取得分辨率的情况下楼主可以根据实际情况设置窗体的大小和控件的位置与大小。

主要不同電腦分辨率不同,

如果不同分辨率設計一套程式,

那樣會很累,

而且效果不好,

我的意思是程式根據分辨率自動調節窗體和窗體上控件的位置及大小;

你可……
[/Quote]
之前就沒有人遇到這種問題,

怎麼到我這裡什麽問題都出來了啦,

難道我是.......
lsh6688 2011-01-24
  • 打赏
  • 举报
回复
if screen.TwipsPerPixelX=800 and screen.TwipsPerPixely=600 then
你的调整语句
elseif screen.TwipsPerPixelX=1024 and screen.TwipsPerPixely=768 then
你的调整语句
end if
clear_zero 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 golden8510 的回复:]

引用 12 楼 veron_04 的回复:
这个知道如何知道屏幕分辨率是关键,再取得分辨率的情况下楼主可以根据实际情况设置窗体的大小和控件的位置与大小。

主要不同電腦分辨率不同,

如果不同分辨率設計一套程式,

那樣會很累,

而且效果不好,

我的意思是程式根據分辨率自動調節窗體和窗體上控件的位置及大小;
[/Quote]
你可以买提供这项功能的第三方控件,其它的就没有什么捷径了

Private Sub Form_Load()
Me.Width =0.8 * VB.Screen.Width
Me.Height =0.8 * VB.Screen.Height
End Sub
根据这个,也就是无论你多大的分辨率都是显示80%。同理,你就把相关的代码加进来就好了
Private Sub Form_Load()
Me.Width =0.8 * VB.Screen.Width
Me.Height =0.8 * VB.Screen.Height
text1.left=...
text1.width=...
End Sub

只有图标上面的文字那就不能控制了,等你做熟了以后抽象成一个类,然后在窗体加载的时候调用这个类帮你弄。
golden8510 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 veron_04 的回复:]
这个知道如何知道屏幕分辨率是关键,再取得分辨率的情况下楼主可以根据实际情况设置窗体的大小和控件的位置与大小。
[/Quote]
主要不同電腦分辨率不同,

如果不同分辨率設計一套程式,

那樣會很累,

而且效果不好,

我的意思是程式根據分辨率自動調節窗體和窗體上控件的位置及大小;



booksoon 2011-01-24
  • 打赏
  • 举报
回复
.net吧
贝隆 2011-01-24
  • 打赏
  • 举报
回复
这个知道如何知道屏幕分辨率是关键,再取得分辨率的情况下楼主可以根据实际情况设置窗体的大小和控件的位置与大小。
-晴天 2011-01-23
  • 打赏
  • 举报
回复
VB窗口大小是以缇来计的,不同分辨率大小窗体的表观尺寸当然不同.
golden8510 2011-01-23
  • 打赏
  • 举报
回复
剛剛發現分辨率與窗體大小有一個15倍的關係;

Fox Example:1>分辨率 1280*800 窗體最大:19200*12000
2>分辨率 1024*768 窗體最大:15360*11520

gqqnb 2011-01-23
  • 打赏
  • 举报
回复
纯vb么?呃。。vb.net的控件可以锚定,随窗口大小适应。

我不知道vb控件有没有类似功能,你查查吧。

没有的话只能手工做了。有两种方法,都要确定每个控件要设定它们是否有最小大小:
1、模拟锚定。每个控件锁定左边或上边或下边或右边。如果左右都锁定,则在窗体变宽时控件变宽。
1、用算法。比如将控件一行一行得排,窗口拉宽后下一行的控件会移至上一行。

两种方法都要在窗体大小被改变里处理。。。
dbcontrols 2011-01-23
  • 打赏
  • 举报
回复
dbcontrols 2011-01-23
  • 打赏
  • 举报
回复
你主题贴里问“Form上所有控件能根據電腦分辨率自適應調節”了么?
你的主题贴俺回答完了,其他问题另开贴。
如果一味地给出新问题,这一辈子只伺候你一个人都不够

[Quote=引用 4 楼 golden8510 的回复:]
引用 3 楼 dbcontrols 的回复:
是啊,结贴么?


引用 2 楼 golden8510 的回复:
引用 1 楼 dbcontrols 的回复:
VB code
Private Sub Form_Load()
Me.Width =0.8 * VB.Screen.Width
Me.Height =0.8 * VB.Screen.Height
End Sub

謝謝……
[/Quote]
-晴天 2011-01-23
  • 打赏
  • 举报
回复
这是个力气活.
窗体大小改变了以后,必须根据窗体的大小设置各控件的大小,很费事,有时候还会吃力不讨好.俺做的程序,一般都设置窗体为固定大小,省得出这些麻烦.
golden8510 2011-01-23
  • 打赏
  • 举报
回复
VB窗體大小是根據自己電腦分辨率調節,

可是換一台電腦,

電腦分辨率變了,

有的窗體不見了,有的窗體上的字不見了,

我需要的Form上所有控件能根據電腦分辨率自適應調節,

謝謝dbcontrols兄弟;
加载更多回复(4)

7,785

社区成员

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

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