首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于显示屏分辨率及字体的调整的讨论解决思路

2012-02-23 
关于显示屏分辨率及字体的调整的讨论我在自己机器做的程序,如何在不同的分辨率下显示正确包括字体变化(大

关于显示屏分辨率及字体的调整的讨论
我在自己机器做的程序,如何在不同的分辨率下显示正确
包括字体变化(大字体,小字体)以及分辨率发生变化的情况下

我想知道各位大虾是如何处理这些问题的,大家来作个讨论或是建议啊
我特别出高分大家一起研究,谢谢!
有好的办法都一起来讨论啊

[解决办法]
设置一个比例系数k,具体数值自己定
初始化时字体宽度设为k*横向分辨率,高度设为k*纵向分辨率,这样可以保证字体不变形
其它的类似
[解决办法]
目前方法有三:
1.按比例调整去计算,不过该方法出来的效果真是不怎么样。因为按比例算出来的东西有和多因素去影响结果,最常见的就是有的值算出来是2.9 有的值算出是3.1如果采用的方法是向零取整那差别就大了;四舍五入也是一样。
2.设置Form的AutoSize = false; Scaled = false; 然后用ScaleBy(Screen-> Width,1024);
这种方法比较好,而且在不同分辨率下能保证画面的正常显示,但是字体就比较难控制了。
3.运行程序的时候改变操作系统的分辨率。比如你的画面在800*600的时候是正常的,先判断当前系统分辨率是不是800*600 如果不是
DEVMODE DevM;
EnumDisplaySettings(0, 0, &DevM);
DevM.dmFields = DM_PELSWIDTH | DM_PELSHEIGHT;
DevM.dmPelsWidth = 800; 
DevM.dmPelsHeight = 600;
ChangeDisplaySettings(&DevM, 0);
[解决办法]
Ring_Pt(已是黄昏独自愁) 说的有道理,我以前也是这样做的,我采用的是第三种,
[解决办法]
只能自己控制
[解决办法]
98下和2000以上系统有差别。
[解决办法]
用调整系统分辨率的方法怎样调整刷新率?如原分辨率为1024*768,刷新率为75,调整为800*600后刷新率变成了60,怎么办?
[解决办法]
可以做几套界面,不过挺麻烦的
[解决办法]
对于有特殊要求的窗体,修改分辨率是个不错的办法。

热点排行