用于在所有Win32程序员的Windows Aero Glass(DWM,GDI,GDI +)上绘图的文档和API示例

War*_* P 18 windows delphi visual-c++ windows-7 aero-glass

我正在寻找学习使用Win32/GDI API的好资源,或者使用Win32 API直接绘制和绘制到玻璃表格的任何东西.

当我使用Delphi时,我将其标记为Delphi或Visual C++.您可以找到任何代码示例和文章,我们将不胜感激.MSDN文章似乎没有写到这一点.

作为一个目标,让我们想象你想要:(a)重现谷歌Chrome的功能(标签作为玻璃框架的一部分)(b)重现MS Office 2010的功能(保存在MFC上的玻璃框架上的按钮VS 2010,作为"快速访问工具栏"(见下图).

我没有使用MFC,但如果检查MFC源是一个很好的信息来源,我很想知道在MFC源或BCG原始源(我有两者)中的哪些地方实现了快速访问工具栏渲染/绘制代码.

替代文字

更新:以下答案之一的相关neato链接显示NC(非客户端)Paint消息,以及如何在玻璃框架上绘制时处理它,以及此处的MSDN文章.

Dav*_*vid 20

这是我的"Glass"书签文件夹的一个子集,是对该主题进行大量研究/搜索的结果.我发现所有这些对于学习玻璃和解决各种问题都很有用.其中大部分包括Delphi代码,但我已经注意到它用于另一种语言.

普通玻璃链接

  • 使用Delphi的半透明窗口:在Delphi表单中使用Glass的良好介绍(从非常基础)
  • 在玻璃上自定义绘图:介绍如何在窗口的玻璃区域上绘制位图或其他图像.也包括alpha通道等,很好的概述
  • 在VC++项目中使用玻璃:包括打开玻璃,绘制文本,处理通知等 - 这是一个很好的一般介绍它的工作原理.很多底层细节都是由VCL处理的(例如GlassFrame属性和TForm内部机构会考虑很多这些),但是理解它在API级别实现的基础知识非常有用.
  • 如何在非客户区绘制:这显示了如何在标题栏中绘制Office的工具栏..Net代码,但可翻译
  • 设置自定义标题栏:非常详细的关于非客户区绘图的文章(在Delphi中,所以Delphi代码).后续第2部分,演示完全接管整个窗口并自己模仿标准标题栏. 这两篇文章将让您按照问题中的要求模仿Office和Chrome
  • 如何设置各种VCL控件以在玻璃区域上发挥最佳效果:VCL不能很好地支持玻璃.无论你做什么尝试和解决它,你经常会得到文物,或控制根本就没有正确绘制.本文列出了基本的VCL可视化组件(标签,按钮,进度条等)以及为每个组件设置的内容,以便在将它们放置在玻璃区域时完美地绘制,或者至少"尽可能"绘制

高级或切向相关:


Uli*_*rdt 6

在Vista/Windows 7下绘制自定义标题栏的这些帖子可能会让您感兴趣.

示例图片:

样品


Phi*_*eck 5

我确定你找到了关于DWMMSDN页面.它已经跳过很多主题和一些例子.一些"概述"文章中有一些例子(如DWM Blur Behind Overview).

不幸的是,除了文档之外,还有很少的好文章.您可以从codeproject上的Using glass开始,然后在delphi中查看检测玻璃 - 之后直接使用docs中的函数也不错.幸运的是,他们在练习中都非常直截了当.