字体、分辨率与界面

stn 2002-01-04 02:51:59
我用c++builder做界面,在98/2000不同字体和不同分辨率下运行,界面会变的很乱,怎么办?
...全文
223 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
drason 2002-10-05
  • 打赏
  • 举报
回复
marked
fenglingdu 2002-01-19
  • 打赏
  • 举报
回复
学习。。。
child_bj 2002-01-09
  • 打赏
  • 举报
回复
长知识~~~~
ppkk 2002-01-09
  • 打赏
  • 举报
回复
to: child_bj:
缺省条件下(Form scaled为rue).根本不用你调整,bcb自动完成你的所谓比值调整。
(将AUTOSCOLLY设为false,窗口自动变大或变小,控件位置也自动调整。但如果你忘记将autoscoll设为false,则从96==>>120时,由于控件width变大(点阵),Form放不下时自动加入scoll,即在另一机器上,令你只能看到部分
控件,这样的界面也太令人。。。
总之,最好的办法是将Form的Scaled设为false.
child_bj 2002-01-09
  • 打赏
  • 举报
回复
在所有控件的位置为最好的时候算出控件位置坐标跟总坐标的比值,然后当窗体大小改变的时候总是根据这个比值调整它的位置。------这个是我的思路。
ppkk 2002-01-09
  • 打赏
  • 举报
回复
补充一点:对于同一显示系统,无论你将其设成1024*768或800*600
其PixelsPerInch是一样的。
stn 2002-01-09
  • 打赏
  • 举报
回复
ppkk说得完全正确
hcw_peter 2002-01-08
  • 打赏
  • 举报
回复
有經驗就是有經驗啊!佩服
ppkk 2002-01-08
  • 打赏
  • 举报
回复
另:虽然bcb的书已非常多,这个如此重要的问题,居然还未有一本书将这个问题提到!
(那怕只是提醒将Form的Scaled设为false.),更不用说将这些问题解说清楚!
ppkk 2002-01-08
  • 打赏
  • 举报
回复
另:获取PixelsPerInch的API为:
int GetDeviceCaps(hdc,LOGPIXELSY)
ppkk 2002-01-08
  • 打赏
  • 举报
回复
关于这个问题,以前的很多贴子多是错误的.(以前很多人认为是字
符集的问题,建义设成宋体9号就可解决,根本不是这么回事!
在不同环境下,窗口大小及控件的位置会发生变化,其关键原因
是两个环境下的PixelsPerInch(每逻辑Inch的象素)的不同,你可
以观察两个环境下同一个Form PixelsPerInch(很可能一个是96,而另一个是120
或其它,如果都是96则不会发生这种情况,如果你的桌面是小字体,则是96,若是
大字体则是120,如果是自定义字体,则是其它.窗口大小正是根据其现有环境与
设计时的环境进行缩放(120/96),为了消除这样的影响,正象RapTor所说,将
Form的Scaled属性设为FALSE,则可以彻底解决问题!但Bcb的缺省却是True,
所以一定要记隹,设计任何Form,最好将其Scaled设为false,否则,
你的程序在你的环境下自我感觉良好,在其他人的机器上运行则不堪入目,
(很可能控件位置重迭)。
9号字是指其磅值(9*1/72英寸),在不同环境下(PixelsPerInch)其点阵大小并不相同
点阵大小Height=-size(磅值)*PixelsPerInch/72,所以"9"号字并不能解决任何问题。
以前很多关于字体的问题,都没人用这个公式来正确解释.
小结:
  将Form的Scaled设为false,则控件的字体点阵大小永远不变,Form中的控件大小
也不变,窗口大小也不变(但若PixelsPerInch不同,字体磅值发生变化(但我们真正
关心的点阵大小未变!磅值只能代表视角上的大小).
localmaple 2002-01-08
  • 打赏
  • 举报
回复
如果在桌面属性中将屏幕字体设置为大字体,原来的字就显示有问题了!!
请问大家这个该如何解决呀!!
Tone_zrt 2002-01-08
  • 打赏
  • 举报
回复
这个问题简单。
设置所有Form的Font属性为:宋体,9号,字符集:GB2312,编译一下就搞定了!
绝对没有问题,特别是字符集的设定!
gloom 2002-01-08
  • 打赏
  • 举报
回复
怎么设置字符集啊?
stn 2002-01-08
  • 打赏
  • 举报
回复
那,想做好真是难呀
781014 2002-01-08
  • 打赏
  • 举报
回复
学习
我来看看CB 2002-01-07
  • 打赏
  • 举报
回复
定义Form及所有控件的字体为宋体五号字,字符集选择中文,不要用西文。
还要注意屏幕外观要为标准的。字体显示为小字体。
不过,就是这样,2000和98下的显示还不完全一样,一般98下显示的大一些。
stn 2002-01-07
  • 打赏
  • 举报
回复
to all above:
不行呀,我还要在不同分辨率也能保持界面
我的98和2000,分辨率相同(1024*768),字体也相同(小字体),程序也相同(在2000下做)
分别在98和2000下运行起来,却不一样,不知道为什么?
VSaber 2002-01-04
  • 打赏
  • 举报
回复
最重要的是把字符集设置为gb2312,然后再设置字体为某种中文字体就ok了!
dycdyc123 2002-01-04
  • 打赏
  • 举报
回复
在OnSize里限定位置!
加载更多回复(3)

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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