百科问答小站 logo
百科问答小站 font logo



为什么同样的代码生成的EXE界面效果不一样,在xp和win7下也不一样? 第1页

  

user avatar   thexujie 网友的相关建议: 
      

像楼主的 win7_vc6 里的叫“Old Style”,这是从 Win.2000 开始就存在的。

后面两个看起来舒服一些的叫“XP Style”,顾名思义,这是在 XP 引入主题管理器之后才增加的新的按钮以及一些控件样式,这些样式我们可以通过更改 [Control PanelColors] 来替换成我们想要的颜色,实际上很少被大家使用到,渐渐被大众遗忘了……

鉴于太多 XP 之前的旧系统使用了 Old Style,所以,在 XP 以及之后的操作系统里,默认的 Style 都是 Old Style。这是为了保证兼容性,除非我们显式指定 XP Style。指定的方式如下,

1.纯代码:

                #if defined _M_IX86          #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'"")          #elif defined _M_X64          #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='amd64' publicKeyToken='6595b64144ccf1df' language='*'"")          #else          #pragma comment(linker,"/manifestdependency:"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'"")          #endif             

从 VC++ 2005 开始之后的 MFC 项目,这段代码都默认被添加到了 stdafx.h 中的,所以也没有过于引人注意。

2.仔细看上段代码就知道,仅仅是针对链接时设置一些参数,所以呢,可以通过

/MANIFESTDEPENDENCY(指定清单依赖项

来实现,也可以自己嵌入 .manifast 文件。

总之目的都是一样的。

1) 以上就是针对问题 1 的回答;

2) 这些不是“同一个EXE”,它们链接参数不一样的;

3) 在使用内置控件的前提下,统一样式是做不到的。真想统一,建议使用 DirectUI 吧。




  

相关话题

  喜欢用图形界面而不喜欢用命令行的人是不是不适合当程序员? 
  tkinter可以做出多复杂的界面? 
  为什么电影中的黑客几乎不用鼠标? 
  如何修改 QPlainTextEdit 里每个字符的宽度? 
  MFC、WTL、WPF、wxWidgets、Qt、GTK 各有什么特点? 
  Linux 图形界面的显示原理是什么? 
  喜欢用图形界面而不喜欢用命令行的人是不是不适合当程序员? 
  是什么让 Ubuntu 选用 Qt 而不是 GTK? 
  是什么让 Ubuntu 选用 Qt 而不是 GTK? 
  什么语言最适合做 GUI? 

前一个讨论
学习 C/C++ ,有什么书籍推荐?
下一个讨论
如何评价「中国夫妇环球骑行在美被撞致重伤」中的这对夫妻?





© 2025-05-30 - tinynew.org. All Rights Reserved.
© 2025-05-30 - tinynew.org. 保留所有权利