人机界面就是要友好、美观,eDexUI对此进行优化。
究其原因,CreateWindowEx创建的控件,包含在系统的Comctl32.dll动态库中,Comctl32.dll有5.0和6.0两个版本,在默认情况下,运行程序使用的是5.0的版本,界面看起来就很古老了。
工程通过如下设置,是应用程序加载6.0版本的Comctl32.dll,界面就不显得那么古老了。
●在应用工程的res目录创建style.manifest文件,文件内容如下:
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
name="eDexUI"
processorArchitecture="x86"
version="1.0.0.0"
type="win32"/>
<description>eDexUI</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
●将style.manifest导进资源
在解决方案视图中,右键[Ressoure file],添加现有项,如下图所示:
将style.manifest添加后,[Resource Files]有将新增如下项:
完成后,重新编译即可。
贴个viksoe demo程序修改前后的对比图:
修改前,列表的滚动条很古老:
修改后,列表滚动条跟系统风格一致了:
编译工程中,遇到如下问题:
CVTRES : fatal error CVT1100:资源重复。类型: MANIFEST,名称: 1,语言: 0x0409
LINK : fatal error LNK1123:转换到 COFF期间失败:文件无效或损坏
在资源视图中将RT_MANIFEST下面的项,删除即可。