locked
应用程序的分辨率问题? RRS feed

  • 问题

  •  

    同样一个MFC程序(没指定dialog的尺寸),在xp系统下运行起来,只占到大概500x500的像素点位,

                                                                         而在xpe系统下运行起来,却快要占到整个屏幕大小。

          两个系统分辨率都是1024x768  , xpe系统下的硬件显示驱动都正常。

        不知是不是什么组件没有安装?

    2009年1月19日 6:17

答案

  • 其实你的问题还是字体和窗体布局的问题,在vc++ 6.0下,不同的字体和字号会导致不通的页边距(Margin)和控件内容(Padding),如果你使用的字体在XPE下没有对应的支持的话,就会导致界面变形。

    如果你知道你的应用程序使用的是什么字体,那就比较好处理,就是在XPE下安装对应的字库文件,但是要首先保证你的XPE支持字体安装的功能。
    如果你不知道你的应用程序使用的是什么字体,(因为VC++ 6通常界面窗体默认的是System字体,而你开发机上的系统字体可能你不知道指定的是什么字体),那么只需要将System字体显示的设置为一个明确的字体就可以了,最好保证这个字体在XPE下已经被支持。


    至于没有 96dpi和 120dpi的问题,请确保你的XPE中已经添加了以下组件:
    Font Prototype
    User Locale Prototype
    Display Control Panel

    2009年2月3日 3:02
    版主

全部回复

  • 搜之前关于dpi的帖子是

    加 International Control Panel 元件 就可以選 96DPI or 120 DPI ,

    我加了之后DPI setting的下拉菜单依然只有 custom setting , 而没有 96dpi和 120dpi。

    不知还缺什么?

    2009年1月20日 9:46
  • 其实你的问题还是字体和窗体布局的问题,在vc++ 6.0下,不同的字体和字号会导致不通的页边距(Margin)和控件内容(Padding),如果你使用的字体在XPE下没有对应的支持的话,就会导致界面变形。

    如果你知道你的应用程序使用的是什么字体,那就比较好处理,就是在XPE下安装对应的字库文件,但是要首先保证你的XPE支持字体安装的功能。
    如果你不知道你的应用程序使用的是什么字体,(因为VC++ 6通常界面窗体默认的是System字体,而你开发机上的系统字体可能你不知道指定的是什么字体),那么只需要将System字体显示的设置为一个明确的字体就可以了,最好保证这个字体在XPE下已经被支持。


    至于没有 96dpi和 120dpi的问题,请确保你的XPE中已经添加了以下组件:
    Font Prototype
    User Locale Prototype
    Display Control Panel

    2009年2月3日 3:02
    版主