| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6117 人关注过本帖, 2 人收藏
标题:VFP中怎样在不同的电脑分辨率下调整表单大小及其控件位置
只看楼主 加入收藏
牧神之
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2013-10-14
收藏
得分:0 
回复 20楼 qjbzjp
这个就是木瓜软件的函数是吗?请问下这个咋使用呀,我只是看到别人写的有关分辨率上面提到这个函数了,具体我不知道怎么使用啊,你能帮帮我不
2013-10-30 14:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這個教訓告訴你,以後寫程序時先把需求想好,難道之前不知道程序將要運行在別的不同屏幕尺寸的機器上嗎?怎麽不在寫第一個表單時就找到解決方法,而要把麻煩留到寫好這麽多表單後再改呢?就如設計圖紙和地基沒弄好,房子卻到蓋頂階段了,到這個時候就改不過來了。當然,這是寫程序的經驗問題,好好記住吧,好過以後都沒這種設計意識。蘋果的東西好,其實它的系統就是針對自己產品的尺寸定死,即不考慮別家的硬件不同,所以專用的東西都很漂亮、也好做(這恐怕也是很多人說iOS程序好寫的緣故,其實像DOS那樣固定80*25文本屏幕的程序最好做,道理是一樣的),不過問題就跟你的一樣。那種按特定尺寸做好畫面設計的方式,也是這類,所以你看到現在很多WEB頁面在不同的顯示器上出現左右大量留空浪費空間的現象,也是這種設計理念的產物,單是16:9和4:3的不同,就足以讓他們頭大,何況還有那麽多不同規格的移動設備,要適應這麽多不確定的情景,當然需要寫大量的代碼,帶來編程複雜性,但你不能不做啊。面對未知環境,你寫的程序就是爲了應付未知的,這才是學編程最需要明白的理念。

記得我當初從DOS轉向Windows編程的時候,就被這個問題難住了一年之久,因爲視窗模式是允許用戶隨時拖拉窗口成任何形狀的,内容如何適應這種變化,就是最基本的問題,正是這種看起來很簡單的問題,就能讓你的設計思想翻天覆地地改變。現在很多人寫視窗程序,都是靠禁用改變窗體尺寸來遷就自己的,這與Windows窗口的理念完全不符,等於返回原始的DOS時代,那樣何必改界面模式呢。

[ 本帖最后由 TonyDeng 于 2013-10-30 15:44 编辑 ]

授人以渔,不授人以鱼。
2013-10-30 15:29
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
供楼主参考:
改变分辨率.rar (904 Bytes)

相互学习,互相交流,共同提高。
2013-10-30 15:46
牧神之
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2013-10-14
收藏
得分:0 
回复 22楼 TonyDeng
就是啊,很多人就说喊我用anthor,这个是禁用的样子,是一种固定位置,但是没有根本上解决问题,我这样做了,而且还不能先在自己的开发上先运行,一旦运行在其他分辨率低的显示屏上就一样显示错位什么的,反正一句话没有根本上解决这个问题,我也看到很多人出现这种问题,貌似都没有解决办法,我现在后悔当初用这么高的分辨率做为开发环境了,现在只能寻求你们大家给我指点迷津,我是一点思路没有,因为从没遇到过这种情况,挺伤不起的
2013-10-30 16:17
牧神之
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2013-10-14
收藏
得分:0 
回复 23楼 qjbzjp
亲,感谢你一直的帮助了,但是我不想改变分辨率,我想在其他分辨率的电脑上正常运行,也就是说让表单自动的随着分辨率的不同,自己会调整到最佳位置,这样,而不是让电脑去适应系统,因为我的分辨率很高1920*1080,公司的其他电脑分辨率都在我之下,他们电脑提高对他们的电脑不好,第二就是我也想真正通过代码来改动表单,你能帮帮我吗?
2013-10-30 16:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
用高分辨率模式開發是必須的,你在高,可以向抵靠攏,但自身低卻不可能向高處走了。要最簡單的,在你自己的屏幕上,把窗體設成對方的分辨率,比如Height=768,Width=1024這樣,這樣你自己看到的就是在他們機器上看到,這是最低級、最簡單的處理辦法了。

要用代碼處理,你就得在窗體的Activated和Resize事件中寫動態改變控件佈局的代碼,祇要這些事件一觸發,程序就自動佈局,不要在可視化設計器的屬性中填寫硬尺寸。由於程序經常有容器類控件,那麽你除了在Form事件中寫改變佈局的代碼,也要在容器類控件的Resize事件中寫同類的代碼(須知容器其實就是Form的本質,道理是一樣的)。你回頭仔細捉摸我給過的代碼,哪裏有Arrange的自定義方法,就是專門佈局的,它在什麽時候會被調用,也註解得很清楚,而爲什麽要寫那些東西,現在也解釋給你知道了。其實看過我這類代碼的人很多,祇是設計理念不一樣,所以沒人在意而已。你把我上次給你的可執行程序運行一下,用鼠標拖拉任意改變窗口的形狀看看效果就知道了,那是不是你想要的?

人家給你的方案,其實就是放大鏡,Windows自身都有,很難看的,我不知道爲什麽那麽多人說這是很好的解決方案。

[ 本帖最后由 TonyDeng 于 2013-10-30 16:38 编辑 ]

授人以渔,不授人以鱼。
2013-10-30 16:34
bccn0906
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:蜘蛛侠
威 望:2
帖 子:414
专家分:1183
注 册:2013-10-16
收藏
得分:0 
vfp9.0 对这个的问题,不是已有例程吗
proj1.rar (45.27 KB)
2013-10-30 17:27
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
以下是引用牧神之在2013-10-30 16:21:00的发言:

亲,感谢你一直的帮助了,但是我不想改变分辨率,我想在其他分辨率的电脑上正常运行,也就是说让表单自动的随着分辨率的不同,自己会调整到最佳位置,这样,而不是让电脑去适应系统,因为我的分辨率很高1920*1080,公司的其他电脑分辨率都在我之下,他们电脑提高对他们的电脑不好,第二就是我也想真正通过代码来改动表单,你能帮帮我吗?
可以试试,用测出不同分辨率得到不同的系数,来调整控件的长宽、在窗口中的位置及其字体的大小。我没用过,因太费事,不值得。
最省事的方法还是设计为当前大多数显示器都能达到的分辨率。楼主的分辨率太高,现在的许多显示器达不到这个分辨率。

相互学习,互相交流,共同提高。
2013-10-30 18:20
牧神之
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2013-10-14
收藏
得分:0 
回复 28楼 qjbzjp
是啊,因为我第一次做的这个系统就是公司用的,我真的没有实现考虑到这些问题呀,如果还是用anthor 我的建议是不用,不单单是费事,而且每个分辨率不同的电脑,你就得给他改一个是这样的,我已经试过了,真的是好这样的呀,太费事了,不过挺感谢你的,谢谢
2013-10-31 10:08
牧神之
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2013-10-14
收藏
得分:0 
回复 27楼 bccn0906
我不知道呀,可能从没这么做过,很多不懂呀,不过我先看看多,谢谢
2013-10-31 10:09
快速回复:VFP中怎样在不同的电脑分辨率下调整表单大小及其控件位置
数据加载中...
 
   



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

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