我用C#些了一个带有界面的程序 打包成COM供给MFC使用, 调用没有问题,界面也出来了,
  不过为什么界面的控件样式变成跟MFC控件的样式一样呢(比如Button的样式)? 
    这种样式很丑。。不过如果我用VB或者C#来调用我写的组件,界面效果就是正常的。  现在就是不明白为什么用MFC调用后 C#组件的界面样式会改变?

解决方案 »

  1.   

    你是说要样式跟着系统主题变对吧,那个要加一个manifest进去,可以在MFC工程的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