百科问答小站 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 吧。




  

相关话题

  有哪些设计较好的开源 PyQt/Qt/Qml 应用? 
  为什么同样的代码生成的EXE界面效果不一样,在xp和win7下也不一样? 
  MFC、WTL、WPF、wxWidgets、Qt、GTK 各有什么特点? 
  苹果真的偷了施乐的 GUI 吗? 
  什么语言最适合做 GUI? 
  SpaceX 龙飞船中的新触控交互操作系统,意味着什么? 
  MFC、WTL、WPF、wxWidgets、Qt、GTK 各有什么特点? 
  怎么去实现一个简单文本编辑器? 
  喜欢用图形界面而不喜欢用命令行的人是不是不适合当程序员? 
  如何用 C++ 从零编写 GUI? 

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





© 2024-11-16 - tinynew.org. All Rights Reserved.
© 2024-11-16 - tinynew.org. 保留所有权利