65.9K
CodeProject 正在变化。 阅读更多。
Home

PocketPC 上带有自定义图像背景的透明控件

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.53/5 (15投票s)

2003年8月16日

CPOL

1分钟阅读

viewsIcon

120445

downloadIcon

1483

PocketPC 上带有自定义图像背景的透明控件

Sample Image - transparent_controls.jpg

引言

我在 PPC 2002 上编写一个程序,该程序的 UI 需要一个带有位图图像背景的对话框。 在 eVC++ 3.0 对话框模板编辑器中设计对话框时,我添加了静态文本、组框等控件。 我检查了添加到对话框中的每个控件的属性中的透明选项。 但是在 PPC 2002 上,透明选项不像在 PC 平台操作系统上那样工作。 在 CE 上,透明窗口的行为就像设置了 WS_CLIPCHILDREN 样式一样。 你可以看到通过父对话框窗口本身。 这绝对不是我希望的效果。

http://www.pocketpcdn.com/http://www.pocketpcdn.com/articles/transparent_static.html 上有一篇文章介绍如何制作透明静态文本。 它基本上在父对话框过程的 WM_PAINT 处理程序中绘制所有静态文本。 但是,如果您有其他控件,例如组框,则必须自己绘制组框。

为了解决这个问题,我使用了 WM_CTLCOLORSTATIC 消息处理程序。 我首先使用要用作对话框背景的位图图像创建一个模式画笔。 然后在对话框过程中的 WM_CTLCOLORSTATIC 消息处理程序中,我返回之前创建的画笔句柄。 这种方法的缺点是您必须为每个要透明的控件创建单独的画笔,这意味着更多的内存使用。 但是你可以得到想要的效果。

© . All rights reserved.