Internet Explorer工具栏上的combobox的Windows 7样式如何?

问题描述

| 我正在开发Internet Explorer工具栏,我想放置一个组合框 我在工具栏上创建。
HWND comboBox1=CreateWindow(_T(\"COMBOBox\"),_T(\"comboBox\"),WS_BORDER |
        WS_VISIBLE | WS_CHILD | CBS_DROPDOWN,10,200,250,m_hWnd,(HMENU) NULL,NULL,NULL);
可以正常运行,但是组合框的样式为Windows Classic,我希望它使用Windows Aero主题。我已经试过了:
#pragma comment(linker,\"\\\"/manifestdependency:type=\'win32\' name=\'Microsoft.Windows.Common-Controls\' version=\'6.0.0.0\' processorArchitecture=\'*\' publicKeyToken=\'6595b64144ccf1df\' language=\'*\'\\\"\")`
但是什么都没有改变。 (我在一个简单的Win32应用程序上尝试了此操作,并且样式工作正常,但是在工具栏上的DLL中未设置样式) 这是一个简单的例子。     

解决方法

将comctl32清单添加到加载到另一个进程的DLL中不会影响EXE建立的默认激活上下文。 而是,您的DLL在被调用时将需要激活它的激活上下文。请参阅CreateActCtx,ActivateActCtx。然后,您将在每种方法中停用DeActivActCtx,然后在关闭时返回IE和ReleaseActCtx。 一种便宜/快速的方法是ISOLATION_AWARE_ENABLED。 马丁