vc中如何改变edit的背景色?

yessong 2002-05-14 02:50:26
谢谢!
...全文
294 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
feng_sky 2002-05-15
**************************
下面也是根据一个网友提供的方法而作的!

********************************
class MyEdit1 : public CEdit
{
// Construction
public:
MyEdit1();
CBrush m_brBkGround;
COLORREF m_crBkColor;
COLORREF m_crTextColor;


// Attributes
public:

.....
MyEdit1::MyEdit1()
{
m_crTextColor = RGB(0,0,0);
//::GetSysColor( COLOR_WINDOWTEXT );
m_crBkColor = RGB(188,188,188);
m_brBkGround.CreateSolidBrush( RGB(188,188,188) );
}

......
MyEdit1 myedit1;


..............


myedit.Create(ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_LEFT|WS_VISIBLE,
CRect(10,130,400,155),this,IDC_EDIT1);
myedit.ModifyStyleEx(0,WS_EX_CLIENTEDGE, SWP_DRAWFRAME);

......
myedit.m_crTextColor = RGB(0,100,0);

.....
回复
Miao__Miao 2002-05-15
up
回复
yessong 2002-05-15
今天有人答吗?问题解决马上解贴。
回复
eaglerock 2002-05-15
换对话框的颜色,再把edit框的背景模式设为透明就好多了。我就是这样做的
回复
eastrock 2002-05-15
重載WM_CTLCOLOR,msdn上有example
再不然的话,可以自己写一个以CEdit为基类的类,但这样子会比较麻烦就是。如果你只是要设置背景的话,那没有必要自己写一个类
回复
drummer 2002-05-15
HBRUSH CMainDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// TODO: Change any attributes of the DC here
if (nCtlColor==CTLCOLOR_EDIT)
{
pDC->SetBkColor(RGB(255,100,192));
return hbr;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
回复
yessong 2002-05-15
是不是我没说清楚呢?
我在对话框加入了controls中的edit box组件,图标是ab|
普通情况下为白底黑字。
将它改成只读后变成灰底黑字,字不太明显,于是我想将灰底
的颜色改掉。
这就是我的问题,现在有人能帮我解决了吗?
回复
cwsuperman 2002-05-15
sb,pWnd怎么可能是ID呢,哈哈。
回复
Frank_Xu 2002-05-15
if(pWnd==&控件變量)
似乎有点问题。
控件变量指ID还是m_xxx呢?

你用ClassWizard定義一個CEdit ID 的變量,如CEidt m_edit_test;
指m_xxx,不是ID.
回复
yessong 2002-05-14
还是不能解决。谁来帮忙,立马解贴。
回复
yessong 2002-05-14
m_xxx没有m_hWnd
回复
richmain 2002-05-14
应该是pWnd ->m_hWnd == m_xxx.m_hWnd
回复
yessong 2002-05-14
第2个解答也有问题,CTLCOLOR_EDIT是什么?
界面上有很多edit box,根据每个edit的什么标志能确定
修改的是它的颜色呢?
回复
yessong 2002-05-14
if(pWnd==&控件變量)
似乎有点问题。
控件变量指ID还是m_xxx呢?
回复
itclockcn 2002-05-14
HBRUSH CRegdemoDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


if (nCtlColor==CTLCOLOR_EDIT )
{
pDC->SetBkColor(RGB(100,110,100));
pDC->SetTextColor(RGB(200,120,0,));

}

// TODO: Return a different brush if the default is not desired
return hbr;
}
回复
Frank_Xu 2002-05-14
重載WM_CTLCOLOR

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

// TODO: Change any attributes of the DC here
//HWND hWnd=pWnd->GetSafeHwnd ();
//if (hWnd ==控件變量.GetSafeHwnd ())
if(pWnd==&控件變量)
{
pDC->SetBkColor(RGB(0,255,0));
//pDC->SetTextColor (RGB(255,0,0));
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
回复
yessong 2002-05-14
怎么没人答啊?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2002-05-14 02:50
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……