我的系统是Windows2003,已启动WindowsXP视觉风格
开发工具VisualStudio2005
通过两种方式显示一个对话框:1.新建MFC项目,添加对话框资源,DoModal()方法显示对话框
2.新建WIN32项目,添加对话框资源,用DialogBox()方法显示对话框问题是:在MFC项目中显示的对话框,按钮、控件都是WindowsXP风格
而在Win32项目中,对话框里的按钮、控件却都是Windows98风格
怎么样才可以在Win32项目中也应用WindowsXP风格呢

解决方案 »

  1.   

    在exe的资源中需要一个ID为1的类型为24的资源,就是那个xxxx.mainxxxx,资源目录下会有的或者在exe同目录把这个xml改名为 xxx.exe.mainxxx 
      

  2.   

    把*.rc2修改下,加入如下内容:
    #ifdef _MSVC6
    1       24      MOVEABLE PURE  ".\\res\\xxxx.manifest"
    #endif然后把MFC的那个..Res\下的哪个为****.manifest的文件拷贝到Win32的哪个工程的\Res下,就可以了.
      

  3.   

    最简单的方法在你的Win32项目里添加如下代码:
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")然后在DialogBox()之前添加如下代码:
    INITCOMMONCONTROLSEX stCtl;
    ZeroMemory(&stCrl, sizeof(stCtl));
    stCtl.dwSize = sizeof(stCtl);
    InitCommonControlsEx(&stCtl);
      

  4.   

    假设有资源文件,加入manifest就可以了增加资源,选择xxx.manifest,类型输入"RT_MANIFEST"在resource.h中加入
    #define IDR_MANIFEST                    1在.rc中加入IDR_RT_MANIFEST        RT_MANIFEST DISCARDABLE "testa.manifest"用vc 2003以上编译就可以了。