在MFC中创建类似透明的窗口

时间:2014-10-06 15:10:43

标签: c++ windows mfc

我发现了一些有趣的捕获程序。 它非常简单,首先它创建了覆盖整个桌面的透明窗口。 并且,在您可以选择要捕获的区域并保存到图像文件之后。

我只是想知道这个程序是如何创建那种透明窗口的。 实际上,我搜索各种方式使窗口成为透明窗口。 有大约3~4种方法来创建它。 --- WS_TRANSPARENT,分层样式,OnColor消息处理等等......

然而,根据我对该计划的分析,它并没有使用这些技术...

我也查看了资源,但覆盖整个桌面窗口的对话框有WS_VISIBLE和 仅限WS_POPUP样式。 如果我添加WS_BORDER或WS_DLGFRAME样式,则它无法创建透明窗口。 因此,我尝试使用具有捕获程序的相同对话框模板的对话框来创建自己的程序。但它失败了。

最后,我通过API-Monitor监控程序。 但是,每当程序使用createDialogIndirectParam API创建对话框时, 创建对话框并从创建时刻保持透明状态。

有没有人想过这个节目?...

您可以从链接(FastCapture)下载捕获程序

https://www.mediafire.com/?rssbh9bz9wvmybw

1 个答案:

答案 0 :(得分:1)

只需创建一个没有边框的窗口,并使用不执行任何操作的函数处理WM_PAINT和WM_ERASEBKGND消息。因为什么都没画过窗户,所以它将是看不见的。

请注意,WS_TRANSPARENT没有按预期执行。它所做的只是影响用其他窗口绘制窗口的顺序。