我正在寻找很好的资源来学习使用Win32 / GDI API,或者直接使用Win32 API绘制和绘制一个玻璃窗体。
当我使用Delphi时,我将其标记为Delphi或Visual C ++。 任何代码示例和文章,你可以find将不胜感激。 MSDN文章似乎并没有写这个。
作为一个目标,我们假设您想要:(a)重现Google Chrome的function(标签作为玻璃框架的一部分)(b)重现MS Office 2010的function(保存在玻璃框上的button,在MFC中为VS 2010,作为“快速访问工具栏”(见下图)。
我不使用MFC,但如果检查MFC源将是一个很好的信息来源,我很好奇知道哪里在MFC源或BCG原始来源(我都)实施快速访问工具栏渲染/绘画代码。
更新:下面的答案中的一个相关的neato链接显示了NC(非客户端)Paint消息,以及如何在玻璃框架上绘画时处理它,以及关于它的MSDN文章。
这是我的“玻璃”书签文件夹的一个子集,这个主题的研究/搜索的结果。 我发现所有这些对于学习玻璃和解决其中的各种问题都很有用。 其中大部分包括Delphi代码,但是我已经注意到它在另一种语言的地方。
在Vista / Windows 7下绘制自定义标题栏的这些 帖子可能会让你感兴趣。
示例图像:
我相信你已经找到了有关DWM的MSDN页面 。 它跳了很多话题和几个例子。 一些“概述”文章中有一些例子(比如DWM Blur Behind Overview )。
不幸的是,除了文档以外,还有很少的好文章。 您可以从代码项目上使用玻璃开始,并在delphi中查看一个检测玻璃 – 然后直接从文档使用函数是不是太糟糕。 幸运的是,他们在实践中都非常直截了当。
良好的玻璃组件网站,包括玻璃按钮:
另外,这些旧文章可能会帮助你: