开发环境Microsoft Visual Studio 2010,在对话框中放入SysLink Control控件运行程序后对话框弹不出来,还望大家一起帮助解决!谢谢!

解决方案 »

  1.   

    http://blog.csdn.net/akof1314/article/details/5117365
      

  2.   

    还有Split Button Control 控件的使用,当我给此控件定义好变量后编译报错,
      

  3.   

    INITCOMMONCONTROLSEX iccex;
    iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
    iccex.dwICC  = ICC_WIN95_CLASSES | ICC_LINK_CLASS;
    InitCommonControlsEx(&iccex);
      

  4.   

    另外,该控件需要 comctl32.dll 6.0 版本,即需要程序添加可视化样式。
    如果你项目设置里选择了嵌入清单,那么你可以在主程序代码头部加入这段指令:
    #pragma comment(linker,"\"/manifestdependency:type='win32' \
    name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
    processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
      

  5.   

    你说的这些我的工程里面都有,而且系统文件也是comctl32.dll 6.0 版本,麻烦您能把你的这个空间使用的工程发我一份吗?谢谢!
      

  6.   

    多看看 MSDN
      

  7.   

    这个其实和系统是否存在 comctl32.dll 6.0 无关。系统中一直都存在 5.X 和 6.X 系列两个版本,就是给没有使用主题的程序和使用主题的程序两种不同风格界面使用的。如果你确保你添加了初始化 SysLink 控件的代码,而对话框没加载起来,我觉得只有一种可能,就是清单文件的问题。你可以去生成的中间文件目录看看,有没有这样一个文件 XXX.exe.embed.manifest,其中到底有没有加入这样一段,这应该是编译过程中自动加入的。<dependency>
        <dependentAssembly>
            <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
        </dependentAssembly>
    </dependency>或者你用 ResHacker 自己看看生成的 exe 资源类型 1 ID 24 是否加入了这段内容。