VC控件的大小与像素之间的转换
2008-08-23 01:03
295 查看
函数功能:该函数返回系统的对话基本单位,该基本单位为系统字体字符的平均宽度和高度。对于使用系统字体的对话框,可以用这些值在对话框模板之间转换,比如在对话框模板和像素之间。对于不使用系统字体的对话框,从对话框模板单位到像素的转换要根据对话框使用的字体而定。对于对话框的其中一种类型用MaPDialogRect函数很容易地来执行转换,MaPDialogRect考虑字体且正确的把一个长方形模板单位转换为此像素。
函数原型:LONG GetDialogBaseUnits(VOID);
参数:无。
返回值:返回值为一个32位的含有对话基本单位的值。返回值的低位字含有水平对话框基本单位,且高低位字含有垂直对话框基本单位。
备注:GetDialogBaseUnits函数返回的水平基本单位同系统字体中字符以像素为单位的平均宽度相等;垂直基本单位同系统字体中字符的以像素为单位的平均高度相等; 对于一个没有使用系统字体的对话框基本单位相等于对话框字体字符以像素为单位的平均宽度和平均高度。可以用GetTextMetrics和GetTextExtentPoint32函数为一个选择的字体来计算这些值。但是,如果计算结果与那些通过系统执行的值不同,那么可以用MapDialogRect函数避免可能发生的错误。每一个水平基本单位同四个水平对话框模板单位相等;每一个垂直基本单位同八个垂直对话框模板单位相等。所以用下列公式来把对话框模板单位转换为像素:
PiselX=(temptateunitX★baseunitX)/4;PiseIY=(templateunitY★baseunitY)/8
同样地.用下列公式来把像素转换为对话框模板单位:templateunitX=(pixelX★4)/baseunitX;templateunitY=(plxelY★8)/baseunitY
Windows CE:Windows CE不支持此函数的任何一个扩展的错误值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;库文件:user32.lib
使用上述方法最后还是没有成功,最后通过微调,然后计算它们之间的比例:
VC6.0:
控件的宽/像素的宽 = 4/7
控件的高度/像素的高度 = 2/3
VS2005:
控件的宽/像素的宽 = 2/3
控件的高度/像素的高度 = 3/5
函数原型:LONG GetDialogBaseUnits(VOID);
参数:无。
返回值:返回值为一个32位的含有对话基本单位的值。返回值的低位字含有水平对话框基本单位,且高低位字含有垂直对话框基本单位。
备注:GetDialogBaseUnits函数返回的水平基本单位同系统字体中字符以像素为单位的平均宽度相等;垂直基本单位同系统字体中字符的以像素为单位的平均高度相等; 对于一个没有使用系统字体的对话框基本单位相等于对话框字体字符以像素为单位的平均宽度和平均高度。可以用GetTextMetrics和GetTextExtentPoint32函数为一个选择的字体来计算这些值。但是,如果计算结果与那些通过系统执行的值不同,那么可以用MapDialogRect函数避免可能发生的错误。每一个水平基本单位同四个水平对话框模板单位相等;每一个垂直基本单位同八个垂直对话框模板单位相等。所以用下列公式来把对话框模板单位转换为像素:
PiselX=(temptateunitX★baseunitX)/4;PiseIY=(templateunitY★baseunitY)/8
同样地.用下列公式来把像素转换为对话框模板单位:templateunitX=(pixelX★4)/baseunitX;templateunitY=(plxelY★8)/baseunitY
Windows CE:Windows CE不支持此函数的任何一个扩展的错误值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;头文件:Winuser.h;库文件:user32.lib
使用上述方法最后还是没有成功,最后通过微调,然后计算它们之间的比例:
VC6.0:
控件的宽/像素的宽 = 4/7
控件的高度/像素的高度 = 2/3
VS2005:
控件的宽/像素的宽 = 2/3
控件的高度/像素的高度 = 3/5
相关文章推荐
- VC控件--控件的大小与像素之间的转换
- 使用时间控件,并且比较时间大小,和时间类型之间的转换
- vc2008错误:不能将参数 1 从“const char [5]”转换为“LPCTSTR”。。。。各种数据类型之间的转换
- vc中常用的几个数据转换方法-int char* float与CString 之间的转换
- Java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)
- VC++修改控件文字大小和颜色
- VC中Ansi、Unicode、UTF8字符串之间的转换和写入文本
- VC中实现多格式图像的灵活转换与字符串之间转换
- VC中的各种数据类型之间的转换
- Android开发 ——— 分辨率和像素之间的转换
- Android中像素和Dip之间的转换
- VC之CString,wchar_t,int,string,char*之间的转换
- VC中CDC与HDC的区别以及二者之间的转换
- VC中CDC与HDC的区别以及二者之间的转换
- VC++中string、Cstring、char*、wchar*、float、int、double之间的转换
- VC 控件根据窗口大小变化改变大小和位置。(EasySize)
- VC中句柄、指针、ID之间的转换
- 关于单位“缇”与“像素”的转换,以及缇与其他单位(例如:厘米)之间的转换
- 大小写字母之间的转换
- VC中句柄、指针、ID之间的转换