对话框编辑器里的按钮效果是这样的
程序编译出来的效果却是这样的
怎样才能做出前一种按钮呢

解决方案 »

  1.   

    增加一个manifest资源,或把manifest文件更名为"你的程序名.exe.manifest"放在程序目录下
    *.manifest<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"><assemblyIdentity  name="XP style manifest"  processorArchitecture="x86"  version="1.0.0.0"  type="win32"/><dependency>  <dependentAssembly>    <assemblyIdentity      type="win32"      name="Microsoft.Windows.Common-Controls"      version="6.0.0.0"      processorArchitecture="x86"      publicKeyToken="6595b64144ccf1df"      language="*"    />  </dependentAssembly></dependency></assembly>
     
      

  2.   

    自己重载一个按钮类
    也可以用现成的类CXPButton类
    这个类VC知识库和CodeProject上都有。
      

  3.   

    创建项目的时候勾选使用系统默认风格,也可以创建项目后来更改,使用manifest或者在stdafx.h最后加入以下代码:
    #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_IA64
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='ia64' 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