Windows:如何在高分辨率下testing用户界面?

我想testing我的应用程序对 -dpi设置的反应。 我不只是120dpi。 我想testing更高的dpi设置,如:

  • build议使用150dpi分辨率
  • 300DPI
  • 600dpi的
  • 1000DPI
  • 1200dpi的

我的开发机器的显卡无法达到300dpi所需的分辨率(甚至是150dpi)。

假设该接口被devise成“ 适合 ”具有768行(例如1024×768)的显示器,则较高dpi设置所需的分辨率将是:

Normal Wide-Screen Frame Buffer dpi Resolution Resolution Zoom Size (MiB) ======= ============ ============ ====== ============ 96 1024 x 768 1280 x 768 100% 3.75 113 1200 x 900 1440 x 900 117% 4.96 120 1280 x 960 1536 x 960 125% 5.63 131 1400 x 1050 1680 x 1050 137% 6.73 150 1600 x 1200 1920 x 1200 156% 8.70 300 3200 x 2400 3840 x 2400 313% 35.26 600 6400 x 4800 7680 x 4800 625% 140.63 1,000 10667 x 8000 12800 x 8000 1,042% 390.63 

所需的分辨率相当高,即使在150dpi。

我正在考虑在Virtual PC上运行软件的一些东西,虚拟机运行6400×4800 – 然后使用VNC连接到虚拟机。 然后可以调整内容以适应我的显示器。 尽pipe我失去了高分辨率显示器的保真度,但我至less可以看到它,与它交互(即testing它)。 但是Virtual PC仿真的s3 Trio 32/64显卡在1600×1200 (即150dpi)上performance出色。

我也想知道是否有一些虚拟的video卡驱动程序,可以像一个video卡 – 能够高分辨率,但显示本身缩放在我的本地桌面上。

有任何想法吗?


参考

  • MSDN – 如何确保您的应用程序在高DPI显示上正确显示
  • MSDN:编写高DPI Win32应用程序
  • MSDN:教程:编写高DPI Win32应用程序
  • MSDN – 像素密度和可用性
  • 工程Windows 7博客:高DPI分辨率的后续工作
  • Greg Schechter的博客 – Windows Vista Aero中的高DPI支持

Solutions Collecting From Web of "Windows:如何在高分辨率下testing用户界面?"

如果您的应用程序的布局在96,120,144,150 dpi下表现相同,那么我认为不需要测试它以获得更高的DPI,因为您已经测试过对不均匀的dpi增量效果很好。

实际上市场上已经有很多高分辨率的设备,比如1680×1050 15,4英寸或者1920×1080的16英寸笔记本电脑,这些笔记本在120dpi的时候已经出现像素依赖问题,并且已经非常不舒服,在更高密度的显示器支持上工作是有效的。 对你有好处!

编辑:我一直在想。 这可能不是非常实时的,但是也许如果您尝试在窗口中处理WM_PRINTWM_PRINTCLIENT消息并将其打印到文件中,或者至少试图使用打印机设置显示它们的打印预览? 突然间我们至少在300dpi。 只是一个想法。

您需要一个支持1920 x 1200的显卡和显示器。许多用户拥有这些显卡,如果您是开发人员,则使用它们是一种乐趣。 如果你有1600×1200,不想把钱花在一台新的显示器上,那就好了。 除此之外,除非你为皮克斯工作,否则我不认为需要。

我刚刚试过这个与VirtualBox可以报​​告以下内容:

  • 使用Windows XP主机我不能超过2000 x 2000,指定那些将简单地切换回800×600
  • 使用Ubuntu 11.04主机,我可以去至少 4000×4000。

由于Windows Vista引入了新的驱动程序模型,如果Vista / Windows 7支持这些高分辨率,我也不会感到惊讶。 不幸的是,我没有Vista或Windows 7主机来自己测试。

必要的步骤如下:

  • 切换到缩放显示模式(使用主机C ,其中主机默认为正确的Ctrl键)。 这将绘制主屏幕的缩放版本,所以不需要使用RDP技巧。 它还确保有限的窗口大小不会强制虚拟机降低屏幕分辨率
  • 使用命令行工具VBoxManage来指定解析提示 :

     VBoxManage controlvm "VM Name" setvideomodehint 4000 4000 32 

正如你已经知道,NVidia和ATI显卡允许你创建自定义分辨率,但从来没有在一百万年内达到12800×8000.只是给你一个多少内存,会采取的想法…它会需要比1080(1920×1200)视频卡多45倍的内存。 然而,你可以做的是得到一个大喇叭钻机和连锁无数卡在一起…即使仍然… 12800×8000将更适合客户的硬件和LINUX下的驱动程序的东西。

Windows不会检查您的显示器是否实际测量了您配置的DPI,因此只需连接最大的显示器并开始切换设置即可。

我很想知道为什么你要测试这样的高分辨率,即超过192的任何东西。如果你真的需要这样的高分辨率,你当然可以使用硬件来运行它吗?