VC++中的Windows 7按钮样式

Vic*_*tor 1 c++ win32gui visual-c++ windows-7

我是Visual C++的新手(我过去用C编译而不是C++编程).我开始创建一些基本的应用程序,包括窗口和控件以及其他类似的东西.当我运行我的一个应用程序对话框时,看看它的外观(不要看它里面的文字,它只是一些文字):

在此输入图像描述

我的问题是我制作的任何组件,它看起来像Windows 2000的组件.如何获得Windows 7样式?

BTW.我是新人,如果有人能给我提供有关学习的好资源的建议,我将不胜感激.:)

Che*_*Alf 5

编译器并不重要,但你需要

  • 一个应用程序清单,用于指定公共控件的使用的版本6(或更好)

  • 如果你想支持Windows XP,请致电InitCommonControls(如果我记得正确,请检查它)

您需要的最小完整清单是

<?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="*"
    name="CompanyName.ProductName.YourApplication"
    type="win32"
/>
<description>Your application description here.</description>
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)

如果包含国家字符,请将其存储为UTF-8文件.

对于Visual Studio,您只需要有关常用控件的部分,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
    <dependentAssembly>
        <assemblyIdentity
            type="win32"
            name="Microsoft.Windows.Common-Controls"
            version="6.0.0.0"
            processorArchitecture="*"
            publicKeyToken="6595b64144ccf1df"
            language="*"
        />
    </dependentAssembly>
</dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)

并将其指定为项目设置中的附加清单.


启动Windows API级别编程的一个很好的资源是我的Windows API教程博客.

Petzold的"编程Windows"是您最终需要的最佳书籍.在(书)过渡到C#/ .NET之前的一个版本中.