如何改变EVC下DIALOG对话框的背景色

chenjianyong   2007-9-14 10:55 楼主
如题
大家帮忙咯
最好提供出确切代码
谢谢++

还有个附加问题,如果想给对话框加个边框,怎么弄

又谢谢,再谢谢    嘿嘿

回复评论 (7)

重载CtlColor

HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
        //HBRUSH hbr = CEdit::OnCtlColor(pDC, pWnd, nCtlColor);
        HBRUSH hbr;
        hbr = (HBRUSH)m_brBkgnd;          // 给画刷赋句柄
        pDC->SetBkColor(m_crBkColor);     // 画背景色
        pDC->SetTextColor(m_crTextColor); // 画字体颜色
        //pDC->SetDCPenColor(m_crBorderColor);

        // 处理编辑警告
        if ( nCtlColor )
        {
                nCtlColor += 0;
        }

        // TODO:  在此更改 DC 的任何属性

        // TODO:  如果默认的不是所需画笔,则返回另一个画笔
        return hbr;
}
点赞  2007-9-14 16:39
重载CtlColor
这个肯定是对的,谢谢楼上
不过,你的代码我改了改用到我那就不好使了
我的现在这样的:
HBRUSH CMenuInterfaceDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
       
        // TODO: Change any attributes of the DC here
        if ((pWnd->GetDlgCtrlID() == IDC_PumpBUTTON))
        {
                COLORREF clr = RGB(0,0,0);
                pDC->SetBkColor(clr);     //设置黑色的背景
                m_brMine = ::CreateSolidBrush(clr);
                return m_brMine;
        }
    else
        {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
        return hbr;
        }
}
其中m_brMine是我定义的一个PRIVATE变量。
点赞  2007-9-15 01:25
IDC_PumpBUTTON是自绘的,是不是不行?
困了,明天来看HOHO  谢谢大家
点赞  2007-9-15 01:28

5楼 wcs 

attimo(): 你这个好像没捕捉到对话框吧,只是除了button之外全部重绘成这个颜色了,能不能捕捉到对话框呢?
点赞  2007-9-15 09:50
在InitInstance()中添加:
SetDialogBkColor(RGB(222,222,222),RGB(0,0,0));
第一个是背景色,第二个是字体颜色
点赞  2007-9-15 15:22
谢谢楼上朋友们的提点    我刚到家,回头试试,稍后结帐!
点赞  2007-9-15 17:17
InitInstance ?
这个在哪呢
点赞  2007-9-16 10:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复