请教大家,为什么我程序按钮和Windows自带的计算器按钮不一样?
我的程序就是照着Charles Petzold书上的写的一个对话框,但是按钮的显示是当年win95时代的外观,而Windows自带的计算器按钮漂亮多了。
其他别的程序如果有主窗口,然后调出对话框,按钮的外观就和Windows自带的计算器按钮一样。但是我的这个程序就不行,不知为什么?谢谢大家了。
我的程序就是照着Charles Petzold书上的写的一个对话框,但是按钮的显示是当年win95时代的外观,而Windows自带的计算器按钮漂亮多了。
其他别的程序如果有主窗口,然后调出对话框,按钮的外观就和Windows自带的计算器按钮一样。但是我的这个程序就不行,不知为什么?谢谢大家了。
例如:text.exe
manifest文件名text.exe.manifest
格式
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Microsoft.Windows.Text"
type="win32"
/>
<description>Text</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
</assembly>
而且,大侠能否解释一下这个manifest原理是什么呢?还有,我的程序的按钮为什么是那样的外观呢?多谢多谢。
大家也看到了,这其实是一个XML文件,打开记事本,复制上面的内容,然后存盘,文件名任意,这里我存为XPStyle.manifest。然后在VC中新建一个MFC AppWizard(exe)工程,Document/View或Dialog均可,接着把XPStyle.manifest复制到工程所在目录,再用记事本或其它文本编辑工具手动修改工程目录下的资源文件(.rc),在文件最后加上一行: 1 24 “XPStyle.manifest”
在VC中编译并连接工程生成.exe可执行文件,运行一下看看这里我再多解释一下,最后加上的那一行,“1”代表资源ID,必须是“1”。“24”代表资源类型,我想我们对RT_ACCELERATOR、RT_BITMAP、RT_MENU、RT_STRING等资源都非常熟悉,而“24”实际上是RT_MANIFEST。