Hello,高清屏

“分辨率太高真的会眼瞎”

这基本成了所有高清屏笔记本评测、推荐文章里必提的内容。

前段时间,搞了台1080p的全高清屏,感受是:痛并快乐着。


在这一点上,起码windows下的桌面软件,没有跟上硬件的发展。得益于win8的DPI虚拟化,布局混乱的情况很少见了,但字体过小、字体模糊确实大部分软件的通病。包括不才正在使用的chrome。QQ、360、迅雷等一系列看上去财大气粗的软件,也不能在高DPI模式下完美呈现。


其实,开发高DPI识别的软件,也不是难事,以下3步:


  1. 在vs工程的属性=》清单工具=》所有选项,中设置“DPI识别功能”为“高DPI识别”
  2. 创建窗口时,注意使用GetDeviceCaps×尺寸/96(默认DPI),代码示例如下(MSDN):
    FLOAT dpiX, dpiY;
    
    HDC screen = GetDC(0);
    dpiX = static_cast<FLOAT>(GetDeviceCaps(screen, LOGPIXELSX));
    dpiY = static_cast<FLOAT>(GetDeviceCaps(screen, LOGPIXELSY));
    ReleaseDC(0, screen);
    
    hWnd = CreateWindow(
             TEXT("DirectWriteApp"),
             TEXT("DirectWrite Demo App"),
             WS_OVERLAPPEDWINDOW,
             CW_USEDEFAULT,
             CW_USEDEFAULT,
             static_cast<INT>(dpiX * 640.f / 96.f),
             static_cast<INT>(dpiY * 480.f / 96.f),
             NULL,
             NULL,
             hInstance,
             NULL
             );


  3. 字体:类似上面的缩放处理
  4. 图片:使用上面的缩放,或根据DPI更换不同分辨率图片。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值