﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-milo</title><link>http://www.cppblog.com/milo/</link><description>c++</description><language>zh-cn</language><lastBuildDate>Mon, 06 Apr 2026 10:56:21 GMT</lastBuildDate><pubDate>Mon, 06 Apr 2026 10:56:21 GMT</pubDate><ttl>60</ttl><item><title>对话框中控件透明的实现 </title><link>http://www.cppblog.com/milo/archive/2008/11/12/66727.html</link><dc:creator>milo</dc:creator><author>milo</author><pubDate>Wed, 12 Nov 2008 07:58:00 GMT</pubDate><guid>http://www.cppblog.com/milo/archive/2008/11/12/66727.html</guid><wfw:comment>http://www.cppblog.com/milo/comments/66727.html</wfw:comment><comments>http://www.cppblog.com/milo/archive/2008/11/12/66727.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/milo/comments/commentRss/66727.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/milo/services/trackbacks/66727.html</trackback:ping><description><![CDATA[<span class="Apple-tab-span" style="white-space:pre">	</span>如果要在对话框中加载一张图片作为背景，又要实现对话框中的各个控件的透明效果，可以用以下简单的方法实现：<div>1、创建两个成员变量。</div><div><div style="background-color: rgb(238, 238, 238); font-size: 13px; border-left-color: rgb(204, 204, 204); padding-right: 5px; padding-bottom: 4px; padding-left: 4px; padding-top: 4px; width: 98%; word-break: break-all; "><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000; ">CBrush&#160;m_oBrush;<br>CBitmap&#160;m_oBitmap;</span></div></div><div>2、OnInitiDialog中加</div><div><div>m_oBitmap.LoadBitmap(IDB_BITMAP_MAINWND);//背景色资源ID</div><div>m_oBrush.CreatePatternBrush(&amp;&#160;m_oBitmap);</div></div><div>3、添加消息处理函数OnCtrlColor，消息为WM_CTLCOLOR指示即将绘制控件。</div><div><div>HBRUSH CVolumeControlDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">	</span>// TODO: &#160;在此更改 DC 的任何属性</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>// TODO: &#160;如果默认的不是所需画笔，则返回另一个画笔<br></div><div><span class="Apple-tab-span" style="white-space:pre">	</span>&#160;if (pWnd->GetDlgCtrlID() == IDC_SLIDER_Micphone)//具体控件的ID</div><div><span class="Apple-tab-span" style="white-space:pre">	</span>{</div><div><span class="Apple-tab-span" style="white-space:pre">		</span>return m_oBrush;<br></div><div><span class="Apple-tab-span" style="white-space:pre">	</span>}</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">	</span>return hbr;</div><div>}</div></div><div>这样就达到了对话框中控件的透明效果，简单、方便。</div><img src ="http://www.cppblog.com/milo/aggbug/66727.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/milo/" target="_blank">milo</a> 2008-11-12 15:58 <a href="http://www.cppblog.com/milo/archive/2008/11/12/66727.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>