现在在Windows xp下用vs2003 开发一个MFC程序, 界面有几个按钮,都是直接在对话框上面拖动布置位置的,在实体机上 控件的位置和 拖动布置的位置 是一样的。
但我在虚拟机环境(Windows xp 英文环境)下运行程序时,那个按钮就不在对话框上了, 位置就错位了?请教这个是如何产生的,问题已经解决了,但想知道这个现象是为什么?
解决方法:用MoveWindow()来设置按钮位置,这样在虚拟机下就不会出现位置偏差了。

解决方案 »

  1.   

    你的控件是放在对话框上面的还是其他控件上面的?比如对话条 DialogBar什么的?没遇到过这情况,是不是分辨率不一致的原因啊?但这也不至于导致按钮不在对话框上面了啊,错位的厉害么?还在对话框范围吧?
      

  2.   

    恩 还在对话框范围内,就是位置和实体机位置不一样。 范围偏差还挺大的。应该跟分辨率没有关系。
     另外想请教个问题? 为什么我的程序在Windows xp下启动不起来。 比如xx.exe点击没有反应,中文环境下则可以
      

  3.   

    将对话框资源里的字体改成MS Shell Dlg 2或者Tahoma,要直接打开rc文件改,对话框是了靠字体宽高基准的单位定位的
      

  4.   

    机子的DPI改变了 会造成这样的情况 ,这个设置好像要经过一些坐标变换设置....