⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_19336.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:19336 发表者:sandman 发表日期:2002-10-28 11:29:48
<br>主题:看看这个
<br>内容:我用MFC生成一个给予对话框的程序,在上面放一个按钮<BR>调用另外一个对话框,怎么只修改子对话框的背景色啊<BR>我用SetDialogBkColor()函数,但他把子窗口的背景色也该了<BR>我在子对话框里的初始化函数里用背景刷也不行,该怎么做呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:CDMA2000 回复日期:2002-10-28 11:32:55
<br>内容:如何改变对话或窗体视窗的背景颜色&nbsp;&nbsp;<BR><BR>调用CWinApp : : SetDialogBkColor可以改变所有应用程序的背景颜色。第一个参数指定了背景颜色,第二个参数指定了文本颜色。下例将应用程序对话设置为蓝色背景和黄色文本。<BR><BR>BOOL CSampleApp : : InitInstance ( )<BR><BR>{<BR><BR>…<BR><BR>//use blue dialog with yellow text .<BR><BR>SetDialogBkColor (RGB (0, 0, 255 ), RGB ( 255 , 255 , 0 ) ) ;<BR><BR>…<BR><BR>}<BR><BR>需要重画对话(或对话的子控件)时,Windows向对话发送消息WM_CTLCOLOR,通常用户可以让Windows选择绘画背景的刷子,也可重置该消息指定刷子。下例说明了创建一个红色背景对话的步骤。<BR><BR>首先,给对话基类增加一人成员变量CBursh :<BR><BR>class CMyFormView : public CFormView<BR><BR>{<BR><BR>…<BR><BR>private :<BR><BR>CBrush m_ brush ; // background brush<BR><BR>…<BR><BR>} ;<BR><BR>其次, 在类的构造函数中将刷子初始化为所需要的背景颜色。<BR><BR>CMyFormView : : CMyFormView ( )<BR><BR>{<BR><BR>// Initialize background brush .<BR><BR>m_brush .CreateSolidBrush (RGB ( 0, 0, 255 ) )<BR><BR>}<BR><BR>最后,使用ClassWizard处理WM_CTLCOLOR消息并返回一个用来绘画对话背景的刷子句柄。注意:由于当重画对话控件时也要调用该函数,所以要检测nCtlColor参量。<BR><BR>HBRUSH CMyFormView : : OnCtlColor (CDC* pDC , CWnd*pWnd , UINT nCtlColor )<BR><BR>{<BR><BR>// Determine if drawing a dialog box . If we are , return +handle to<BR><BR>//our own background brush . Otherwise let windows handle it .<BR><BR>if (nCtlColor = = CTLCOLOR _ DLG )<BR><BR>return (HBRUSH) m_brush .GetSafeHandle ( ) ;<BR><BR>return CFormView : : OnCtlColor (pDC, pWnd , nCtlColor );<BR><BR>}<BR><BR>你在你的CDialog中与CFormView实现一样的<BR><BR>2002-10-28 11:36:27

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -