locked
请教大家一个关于XPE的问题,请版主和各位大大给予解答。 RRS feed

  • 问题

  •  

    我们这边有一个程序,跑在XP系统下能正常显示,但是到XPE系统上就不能完整显示,老是左右两边空出来一块,不能全屏显示,分辨率也设置的是1024*768,DPI是96的;

     

    把DPI改为120后,界面倒是能全屏了,但是程序中的C#上控件label的位置有偏移;(象输入的字都不在原来的位置,要靠下一些)。

     

    请问我如何做才可以使界面是全屏显示,并且控件等不会产生偏移呢?(就像XP系统下运行一样)。

    是出现在缺少组件,还是分辨率/DPI/字体,还是程序本身的问题上呢?

     

    请各位大大给予解答!!谢谢!

    2008年12月4日 2:52

答案

  • 这个问题其实是XPE的系统字体和你开发机上使用的系统字体不一致的原因。XPE不能够像普通的XPP那样支持那么多的中文字体和英文字体,所以当你的应用程序使用的字体在XPE下没有的时候,就会出现界面不能正常显示的问题。

    解决该问题的方法是:

    1. 首先保证你的应用程序使用的字体在XPE中有对应的字库(建议程序各个界面均使用宋体),如果没有,请安装相应的字体文件;

    2. 在.net开发环境中打开你的工程,把出现错位的窗体的AutoScaleMode属性改为None;

    2008年12月8日 3:42
    版主

全部回复

  • 这个问题其实是XPE的系统字体和你开发机上使用的系统字体不一致的原因。XPE不能够像普通的XPP那样支持那么多的中文字体和英文字体,所以当你的应用程序使用的字体在XPE下没有的时候,就会出现界面不能正常显示的问题。

    解决该问题的方法是:

    1. 首先保证你的应用程序使用的字体在XPE中有对应的字库(建议程序各个界面均使用宋体),如果没有,请安装相应的字体文件;

    2. 在.net开发环境中打开你的工程,把出现错位的窗体的AutoScaleMode属性改为None;

    2008年12月8日 3:42
    版主
  • 请教 版主一个问题:

     我是用vc++ 6.0 MFC写了一个小程序,语言用的是英文(运行环境也是英文的xp和 xpe)。在xp系统下的 dialog对话框只占屏幕面积的一半,但在xpe系统下运行该程序就占到一大半,现象跟楼主描述的差不多。

    首先保证你的应用程序使用的字体在XPE中有对应的字库(建议程序各个界面均使用宋体),如果没有,请安装相应的字体文件;

     
    如何知道我现在程序使用的字体是什么?
    谢谢@!
    天喦
    2009年2月2日 6:02
  • 其实你的问题还是字体和窗体布局的问题,在vc++ 6.0下,不通的字体和字号会导致不通的页边距(Margin)和控件内容(Padding),如果你使用的字体在XPE下没有对应的支持的话,就会导致界面变形。

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

  •  那么只需要将System字体显示的设置为一个明确的字体就可以了

    谢谢版主的回复,请问这个设置实在TD里做系统的时候做,还是做好系统后进去进去再设?
    天喦
    2009年2月3日 3:08