📄 subject_66023.htm
字号:
<p>
序号:66023 发表者:漂 发表日期:2003-12-21 22:56:08
<br>主题:对话框的颜色怎么改?
<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>回复者:青蛙网子 回复日期:2003-12-22 08:59:35
<br>内容:方法1。<BR>在对话框显示之前,也就是在App中使用下面的函数。<BR>SetDialgBkColor(RGB(255, 255, 255),RGB(0, 0, 0));<BR>第一个参数是对话框背景色,第二个是前景色也就是文字颜色,不过所有的对话框就都是这个颜色了。<BR><BR>方法2。<BR>也可以贼对话框运行时动态改变其颜色(包括其中的控件),当对话框(控件)需要重新着色时,Windows向对话框发送一条WM_CTLCOLOR消息获得颜色,CWnd对象通过重置虚拟方法OnCtlColor处理WM_CTLCOLOR消息,在该方法中根据一定的条件设置新的颜色,返回一个HBRUSH,就可以用它来重新绘制控件,OnCtlColor代码如下:<BR><BR>HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) <BR>{<BR>switch (nCtlColor) { <BR> case CTLCOLOR_EDIT: <BR> case CTLCOLOR_MSGBOX:<BR> case CTLCOLOR_DLG : <BR> case CTLCOLOR_EDIT : //在此加入你想要改变背景色的控件消息<BR> pDC->SetBkMode(TRANSPARENT);<BR> HBRUSH B = CreateSolidBrush(COLOR); //COLOR是你想设置的颜色 <BR> return (HBRUSH) B;<BR> default: //其他控件设置自己默认的颜色和背景刷.<BR> return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); <BR> }<BR>}<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:浪际天涯 回复日期:2003-12-22 11:48:40
<br>内容:App的InitInstance()中写<BR>SetDialgBkColor(RGB(255, 255, 255),RGB(0, 0, 0));<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:簡懷彬 回复日期:2004-01-07 08:40:35
<br>内容:2樓的朋友,你的簽名好有詩意啊!強!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:platin 回复日期:2004-01-08 01:09:00
<br>内容:MSDN:<BR>MFC Library Reference <BR><BR>CWinApp::SetDialogBkColor<BR>This function is obsolete.<BR><BR>Remarks<BR>To set the background color of the dialog box, you must handle WM_CTLCOLOR. This message changes the color of the specified dialog box only.<BR><BR>MSDN上说CWinApp::SetDialogBkColor已经obsolete,建议处理WM_CTLCOLOR消息。<BR>2004-1-8 1:10:29
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -