调暗对话框周围的屏幕

Posted

技术标签:

【中文标题】调暗对话框周围的屏幕【英文标题】:Dimming screen around dialog 【发布时间】:2009-08-10 14:28:59 【问题描述】:

许多应用程序中的一项流行功能 - 使模式对话框周围的屏幕变暗。 我需要在 Windows Mobile、C++ 上实现这个功能。 主 wnd 是全屏的,但包含许多子窗口。如何使特定矩形周围的所有内容变暗(边界所需的模态窗口)?

【问题讨论】:

我认为 Windows Mobile 上的所有模式对话框也应该是全屏的?你确定你不是在这里谈论 Windows CE 吗? 【参考方案1】:

在 Win32 上,您可以通过在桌面顶部放置一个半透明的全屏黑色窗口来实现此目的。查找渲染半透明闪屏的示例以查找示例。通常使用 GDI+。

后记:我刚刚在您的问题中看到“移动”一词 - 不确定这将如何应用于该环境。

【讨论】:

【参考方案2】:

您应该将 BitBlt api (http://msdn.microsoft.com/pt-br/library/aa930997.aspx) 与 PaintRect 一起使用,这样您就可以将当前桌面的副本绘制为透明的孔屏。

对不起,我没有更详细,因为我不记得怎么做。

--编辑: 更多链接可以帮助您,两者都可以满足您的需求: http://www.vbforums.com/showthread.php?t=534771 http://www.developer.com/ws/pc/article.php/2190121

【讨论】:

以上是关于调暗对话框周围的屏幕的主要内容,如果未能解决你的问题,请参考以下文章

如何在 wix 屏幕/对话框之间插入 C# CA 屏幕/表单

如何消除点击按钮时周围出现的白线?

如何使对话框响应不同的屏幕尺寸?扑

如何修复在较小屏幕中被截断的选择器对话框?

显示对话框时尝试锁定屏幕旋转

活动(主题对话框)在其上的来电屏幕阻塞