【问题标题】:windows 7 style for combobox on internet explorer toolbar, how?Internet Explorer工具栏上组合框的Windows 7样式,如何?
【发布时间】:2011-05-25 00:59:15
【问题描述】:

我正在开发一个 Internet Explorer 工具栏,我想放置一个组合框 我在工具栏上创建。

HWND combobox1=CreateWindow(_T("COMBOBOX"), _T("combobox"), WS_BORDER |
        WS_VISIBLE | WS_CHILD | CBS_DROPDOWN, 10, 0, 200,
        250, m_hWnd, (HMENU) NULL,NULL , NULL);

这可以正常工作,但组合框的样式是 Windows 经典方式,我想让它使用 Windows Aero 主题。我试过这个:

#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")`

但没有任何改变。 (我在一个简单的 Win32 应用程序上试过这个,样式效果很好,但在工具栏上的 DLL 中,样式没有设置)

Here's a simple example.

【问题讨论】:

  • 这里没有实际问题。请不要发布 ZIP 文件的链接。
  • 我怎样才能得到其他人的例子?

标签: c++ windows-7 toolbar


【解决方案1】:

将 comctl32 清单添加到加载到另一个进程中的 DLL 不会影响 EXE 建立的默认激活上下文。

相反,您的 DLL 需要在调用时激活它的激活上下文。请参阅 CreateActCtx、ActivateActCtx。然后,您将在每个方法中 DeactivateActCtx,然后再返回 IE,并在您关闭时 ReleaseActCtx。

一种廉价/快速的方法是 ISOLATION_AWARE_ENABLED。

马丁

【讨论】:

  • Martyn 请帮忙)你能改变我的简单例子吗?我在谷歌上搜索 CreateActCtx,但我不明白如何更改我的示例
  • 遗憾的是,我没有时间这样做。但是搜索 ISOLATION_AWARE_ENABLED 会告诉你一个相对简单的方法。我还应该补充一点,浏览器工具栏是对安全性和性能非常敏感的组件。因此,如果您对 Win32 不满意,您可能需要找一位当地的导师来帮助确保您的工具栏安全。
  • fnks 我找到了有关 ISOLATION_AWARE_ENABLED 的信息并解决了我的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 2011-04-01
  • 2011-07-09
  • 2012-09-07
  • 1970-01-01
相关资源
最近更新 更多