动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 站长之家 > 站长心得
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 站长心得 ]的信息

本月文章推荐
.互联网是什么阻碍了你的成功?.
.浅谈CPM、CPC、CPA、PFP网站赚钱.
.新站迅速提高流量.
.网页浏览速度提高切实可行的七个.
.谈网站首页一般会有三个核心价值.
.挑战阿里,从何着手.
.五年以后个人网站像传呼机一样成.
.快速提升PV的方法只要改一下位置.
.个人网站创业 不要惧怕技术门槛.
.关于伪静态和真静态.
.互联网创业者们必须必备的心态.
.Del.icio.us的成功经验2.
.个人网站如何才能成功?.
.FlickR如何控制外站的引用(图片.
.新站如何被百度快速的收录.
.网上开店快乐赚钱-发现潜在商机.
.谈谈三年来做站的经验.
.戴志康:探寻未来五年的个人站长.
.有了QQ群 为何还再要落后的Faceb.
.如何加高质量的新闻带来巨大流量.

高分辨率下界面布局的解决方案2

发表日期:2007-7-19 |


关键问题

在设计高分辨率的应用程序过程中,我们要特别注意四个重要的方面:文本和字体、图像(图形、图标和鼠标指针),版面设置以及重绘。

文本和字体

这里有两种字体:位图(光栅)字体和TrueType字体,而我们要想实现高分辨率的应用程序就只能使用Truetype字体,因为位图(光栅)字体只能在96-DPI的屏幕分辨率下正常,而且不能够缩放,Windows已经支持TrueType字体很长时间了,所以找到一个很好的TrueType字体并且定义到我们的应用系统中并不是什么大的问题,另外一个原因只能使用Truetype字体,因为一些最新的技术,比如说GDI+,但是它只支持Truetype字体的操作。

 

 

缺省的字体可以通过windows句柄(HWNDs)和得到,而图形设备(HDCs)获得的是位图(光栅)字体,所以有时候在改变字体的时候,不管缺省字体不是HWNDs和HDC字体,只要它是TrueType字体,我们就可以改变它:

 


HFONT font = (HFONT) GetStockObject (DEFAULT_GUI_FONT);

SendMessage (hwnd, WM_SETFONT, (WPARAM) font, 0);

SelectObject (hdc, font);

当我们在窗口上创建字体的时候,可以使用像素指定字体尺寸,然后调整分辨率。

 


LOGFONT lf;

Memset (&lf, 0, sizeof (lf));

lf.lfHeight = SCALEY (13);

HFONT font = CreateFontIndirect (&lf);

或者可以使用Windows API提供的选择文字通用对话框,允许使用更准确的像素点来指定字体尺寸,然后经过一些算法后转化字体尺寸为像素,可以指定只使用TrueType字体来显示。

 


CHOOSEFONT data;

Memset (&data, 0, sizeof (data));

data.lStructSize = sizeof (data);

data.hwndOwner = form;

data.Flags = CF_TTONLY | CF_SCREENFONTS;

ChooseFont (&data);

最好的方法常常是在各种高分辨率下指定一个尺寸和一个区域的尺寸并且使用字体尺寸作为度量比例尺来指定这个页面中的其它元素,比如说,可以设定按钮之间的间距为缺省字体的高度的多少,使用GetTextMetrics()这个函数可以重新设定一个字体的高度。

TEXTMETRIC metrics;

GetTextMetrics (hdc, &metrics);

Int height = metrics.tmHeight;

最好不要使用TEXTMETRIC提供的tmAveCharWidth 方法,因为它只可以处理英文字母,除此以外我们还可以使用GetTextExtent()的这个方法来确认所关心的字符串的尺寸,我们可以用GetTextExtentPoint32()绘制一个环绕字符串的矩形,示例如下:

 


SIZE size;

GetTextExtentPoint32 (hdc, string, strlen (string), &size);

Int paddingX = SCALEX (8);

Int paddingY = SCALEX (8);

Rectangle (hdc, x - paddingX, y - paddingY, x + size.cx

+ paddingX, y + size.cy + paddingY);

TextOut (hdc, x, y, string, strlen (string));

最后,我们意识到尽管TrueType字体缩放精细,但是他们不是线性缩放,也就是说在DPI增加10%以后字符串的长度不能正确的增加10%,(使用GDI+就没有这个问题),因为一些特定的字母只能在几个尺寸上看起来不错,而TrueType却可以自动选择一个近似的尺寸正确显示,这是使用GetTextExtent这个函数的原因。

上一篇:高分辨率下界面布局的解决方案1 人气:1769
下一篇:高分辨率下界面布局的解决方案3 人气:1835
浏览全部界面布局的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-11-22 CMS001 v2.2 bulid 081122 Beta
2008-11-22 腾讯小说小偷 v5.0 20081113
2008-11-22 iestore网上商店系统 v1.0.7.0
2008-11-22 GKEE CRM客户管理系统 v1.2
2008-11-22 shopd1网店系统 v1.3
2008-11-22 翎风个人主页管理系统 v1.5
2008-11-22 开良狗狗影视搜索小偷 v1.1
2008-11-22 XtreMedia
2008-11-22 互联网数据分享应用平台 v1.0.0
2008-11-21 傲游(Maxthon) 2.1.5 正式版
2008-11-21 Skype v3.8.0.188 Final
2008-11-21 AirPlay OpenAlpha 2008.11.20
2008-11-21 屏幕文字抓取工具 DWMouse1.3.510
2008-11-21 Vista一键还原(Vista Ghost)1.
2008-11-21 SP Photo Fix照片修改1.2破解版
2008-11-21 QQ腾讯聊天工具 v1.2正式版
2008-11-21 FlightTrack航班信息v1.0破解版
2008-11-21 RealPiano仿真钢琴1.0破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵
SEO対策 中国語教室 ホームページ作成