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

哪位大侠给补下基础知识!解决方法

2012-03-14 
哪位大侠给补下基础知识!现在要已知我的1.屏幕尺寸(如20英寸)2.显示分辨率(如1440*900)3.也可用尺子量下具

哪位大侠给补下基础知识!
现在要已知我的
1.屏幕尺寸(如20英寸)
2.显示分辨率(如1440*900)
3.也可用尺子量下具体的宽高(毫米为单位)
问题:
MS的字体以磅为单位
1.我如何知道在屏幕(X,Y)上一个特定磅值的汉字占用多少个像素(宽高),一个英文单字占用多少个像素
(如果我说的条件不够也请补足,最好结合上全角和半角),如何画一个矩形把它刚好包围(精确到一个像素)
2.在office系列里控件的windowleft属性又是以“缇”为单位,这个如何换算

这个问题放在这不知合适否,如有不妥,请包含!



[解决办法]

C/C++ code
// 1__fastcall TForm1::TForm1(TComponent* Owner)    : TForm(Owner){    //Canvas->Font 首先设置字体,大小.才能知道你需要知道的字体的宽高    int cn_h = Canvas->TextHeight("中");    int cn_w = Canvas->TextWidth("中");    int en_h = Canvas->TextHeight("A");    int en_w = Canvas->TextWidth("A");}
[解决办法]
调用GetDeviceCaps就可以了,参数hdc可以用GetDC(0),参数nIndex用如下几个:HORZSIZE、VERTSIZE获取物理屏幕宽、高(毫米,与设置的分辨率无关),HORZRES、VERTRES获取屏幕宽、高(像素,就是当前分辨率)。
注意获取的物理屏幕的尺寸与实际测量尺寸可能有出入,只能作为参考,尤其是未安装显示器的原配驱动程序的情况下。

热点排行