c++ - 显示如何向 Opera/Firefox 4 等 Vista 窗框的玻璃部分添加按钮/菜单的示例

标签 c++ windows visual-c++ winapi menu

我想在使用 WTL 和 Win32++ 的 C++ 应用程序中将菜单添加到框架的玻璃部分。这些库可能主要是因为这是我需要从 Win32 做的事情。

最新版本的 Opera 和即将推出的 Firefox 将执行此操作,但我无法找到代码示例。有没有人有将控件添加到他们可以共享的玻璃的示例?我想我可以使用一个按钮示例和类似的东西。

我用 WinSpy 做了一些挖掘,但我无法计算出 Opera 使用的确切控件。

我只针对 Windows Vista 和 7。

歌剧示例: alt text

在 Firefox 4 中显示菜单的示例 proposal (在他们的 YouTube 演示文稿中点击链接了解更多信息: alt text
(来源:faaborg at people.mozilla.com)

最佳答案

WPF blog包含有关在非客户玻璃上绘画的详细信息。查看“带有 Aero 的 Office 2007 - 在带玻璃的 NC 区域绘图”部分了解详细信息;它与工具包无关。

基本上,自己做窗框。使用 WM_NCCALCSIZE 欺骗 Windows 关于实际框架尺寸,然后使用您喜欢的任何额外控件绘制您自己的假标题栏。通过重新实现 WM_NCHITTEST 处理程序来连接“窗口控件”。

关于c++ - 显示如何向 Opera/Firefox 4 等 Vista 窗框的玻璃部分添加按钮/菜单的示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120408/

相关文章:

c++ - 来自 typedef 结构的错误

c++ - 类继承链和指向每个类的指针

c++ - 如何在同一程序中崩溃时自动重启 Qt 应用程序?

c++ - if constexpr std::is_same 在 VS 2022 下

windows - 检测一个程序是否已经安装了 NSIS

string - 从文本文件中删除二进制控制字符

python - 从 Python 更改 Windows 背景

c++ - 类型转换自定义 C++ 类

c++ - 回复 Ping 广播

c++ - 为什么 MSVC 编译这个模板函数失败?