CEDIT控件的背景色为什么没有改变的?
我把IDC_EDIT1设为ReadOnly,背景变为灰色,我想改回白色,然后我就重写CtlColor,代码如下:对话框Dlg.hclassC对话框Dlg:publicCD...
我把IDC_EDIT1设为ReadOnly,背景变为灰色,我想改回白色,然后我就重写CtlColor,代码如下:
对话框Dlg.h
class C对话框Dlg : public CDialog
{
// 构造
public:
C对话框Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_MY_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedsend();
public:
afx_msg void OnBnClickedButton1();
public:
// //
CEdit m_edit;
}
对话框Dlg.cpp
……
HBRUSH C对话框Dlg::OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT))
{
pDC->SetBkColor(RGB(255, 255, 255));
hbr = CBrush(RGB(255, 255, 255));
}
return hbr;
}
……
编译能通过,但是控件的颜色没有变成白色,为什么?
能不能把那两个文件发给我,可能是在映射等其他地方出问题了, nicechp@gmail.com 谢谢 展开
对话框Dlg.h
class C对话框Dlg : public CDialog
{
// 构造
public:
C对话框Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_MY_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg HBRUSH OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedsend();
public:
afx_msg void OnBnClickedButton1();
public:
// //
CEdit m_edit;
}
对话框Dlg.cpp
……
HBRUSH C对话框Dlg::OnCtlColor(CDC *pDC,CWnd *pWnd,UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT))
{
pDC->SetBkColor(RGB(255, 255, 255));
hbr = CBrush(RGB(255, 255, 255));
}
return hbr;
}
……
编译能通过,但是控件的颜色没有变成白色,为什么?
能不能把那两个文件发给我,可能是在映射等其他地方出问题了, nicechp@gmail.com 谢谢 展开
1个回答
展开全部
class CCListIconDlg : public CDialog
{
// Construction
public:
CBrush m_brush;//成员变量
}
BOOL CCListIconDlg::OnInitDialog()//初始化
{
CDialog::OnInitDialog();
m_brush.CreateSolidBrush(RGB(0,255,0));
}
HBRUSH CCListIconDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
if (pWnd->GetDlgCtrlID() == IDC_EDIT1 )
{
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,0,255));
return m_brush;
}
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Return a different brush if the default is not desired
return hbr;
}
//也不知道都什么错误,如果可以的话白度Hi一下
我在2005上试过的没有问题
{
// Construction
public:
CBrush m_brush;//成员变量
}
BOOL CCListIconDlg::OnInitDialog()//初始化
{
CDialog::OnInitDialog();
m_brush.CreateSolidBrush(RGB(0,255,0));
}
HBRUSH CCListIconDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
if (pWnd->GetDlgCtrlID() == IDC_EDIT1 )
{
pDC->SetTextColor(RGB(255,0,0));
pDC->SetBkColor(RGB(0,0,255));
return m_brush;
}
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Return a different brush if the default is not desired
return hbr;
}
//也不知道都什么错误,如果可以的话白度Hi一下
我在2005上试过的没有问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询