如何修改对话框的背景色

来源:百度知道 编辑:UC知道 时间:2024/09/22 19:25:14
请高手给出使用的解决方法,不要为了一点积分,就随便回答,不负责任

给你个类似的例子看看。

CEikDialog* mydialog= new(ELeave) CEikDialog;
mydialog->PrepareLC(R_MY_DIALOG);
RWindow* window = (RWindow*)mydialog->DrawableWindow();
window->SetBackgroundColor(TRgb(0,255,0));
mydialog->OverrideColorL(EColorDialogBackground,TRgb(0,105,0));
mydialog->RunLD();

获得句柄后调用SetBkColor函数
然后重绘RedrawWindow(NULL, NULL, RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE );

CBrush m_bBackColor;
m_bBackColor.CreateSolidBrush(RGB(13,55,43));

重载 CtlColor

HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CWnd::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here

return m_bBackColor;
}