none
WinCE6 怎样调整显示分辨率? RRS feed

  • 问题

  • 我有一个为320X240的LCD设备 设计的程序,现在要让它运行在一个640X480的LCD设备上。可是它运行起来之后,却只是占据了屏幕的左上角1/4区域。我只有这个程序的可执行文件,但是又想让它在640X480的LCD设备上全屏运行。 

    有没有办法象在windows XP上一样,降低WinCE6 显示的分辨率,从 640X480 变到320X240。

    谢谢!

    2012年12月4日 4:09

答案

  • 用双frame buffer临时解决。

    320×240给WinCE OS,640×480由LCD控制模块访问。LCD驱动读取及修改小的frame buffer中的数据到大的frame buffer中。

    由于是软件转换窗口图形数据,所以刷新频率低。只适合简单程序控制。

    • 已标记为答案 Eric_Ma 2012年12月14日 3:41
    2012年12月14日 3:41

全部回复

  • Hi Eric,

    分辨率通常都在BSP之中的VGA Driver作設定,你可以在C:\WINCE600\platform\ 目錄下找到你的BSP目錄,

    在目錄中找到你的VGA Driver, 設定值通常會在*.reg的檔案內.

    Johnny


    Johnny

    2012年12月11日 2:38
  • Hi Johnny,

    VGA driver中设定是LCD屏的分辨率。在这里更改到320×240后,实现的是一个320×240物理像素的显示。在640×480的LCD上,它只占1/4屏。

    实际我想要的是让这个320×240的程序,在640×480的LCD上全屏显示。

    我曾修改注册表 如下:

    [HKEY_LOCAL_MACHINE\Drivers\Display\GPE]
    ;"LogicalPixelsY"=dword:60
    ;"LogicalPixelsX"=dword:60
    "LogicalPixelsY"=dword:C0
    "LogicalPixelsX"=dword:C0

    但是,部分窗体和控件得到相应放大,但是还是有些窗体和控件大小、位置都没有变化。我想,WinCE组件定位可以通过两种像素实现。一种是物理像素,另一种是逻辑像素。逻辑像素定位的组件可以通过改上面的注册表来调整显示比例。但是,通过物理像素定位的,上面的注册表改动就无效了。

    我也尝试在WinCE6中,寻找GDI API的源码,如SetPixels(), FillRect()等,想试试更改这些APIs,但是没有找到他们的源码,只找到了头文件。

    茫然啊

    2012年12月11日 9:33
  • 用双frame buffer临时解决。

    320×240给WinCE OS,640×480由LCD控制模块访问。LCD驱动读取及修改小的frame buffer中的数据到大的frame buffer中。

    由于是软件转换窗口图形数据,所以刷新频率低。只适合简单程序控制。

    • 已标记为答案 Eric_Ma 2012年12月14日 3:41
    2012年12月14日 3:41