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




  

相关话题

  为什么 JetBrains 选择用 Java 开发 GUI? 
  怎么去实现一个简单文本编辑器? 
  如何才能学到Qt的精髓? 
  MIUI V5 的一套图标设计是什么风格?有哪些相似作品? 
  为什么总有人极力推荐使用命令行操作而非图形界面? 
  请问一个程序员应该怎样才能学会编写带GUI的程序? 
  MIUI V5 的一套图标设计是什么风格?有哪些相似作品? 
  DOS 界面是如何制作的? 
  Linux 为什么没发展成 macOS 或者 Windows 那样的大众图形化操作系统? 
  为什么安卓的图形界面很好用,linux的图形界面那么拉跨? 

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





© 2025-02-11 - tinynew.org. All Rights Reserved.
© 2025-02-11 - tinynew.org. 保留所有权利