tempad
Readygo技术搜索引擎 >>ASP技术 >> vc中如何改变edit的背景色?

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

Readygo技术搜索引擎 网络搜索 efish 2008-1-14 6:26:15

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

楼主yessong(夜菘)2002-05-14 14:50:26 在 VC/MFC / 基础类 提问

谢谢! 问题点数:20、回复次数:17Top

1 楼yessong(夜菘)回复于 2002-05-14 14:56:28 得分 0

怎么没人答啊?  
  Top

2 楼Frank_Xu()回复于 2002-05-14 14:58:00 得分 5

重載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;  
  }Top

3 楼itclockcn(司空飞雪)回复于 2002-05-14 15:10:26 得分 5

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;  
  }Top

4 楼yessong(夜菘)回复于 2002-05-14 15:12:47 得分 0

if(pWnd==&控件變量)  
  似乎有点问题。  
  控件变量指ID还是m_xxx呢?Top

5 楼yessong(夜菘)回复于 2002-05-14 15:24:14 得分 0

第2个解答也有问题,CTLCOLOR_EDIT是什么?  
  界面上有很多edit   box,根据每个edit的什么标志能确定  
  修改的是它的颜色呢?Top

6 楼richmain(Text1.cpp)回复于 2002-05-14 15:26:04 得分 0

应该是pWnd   ->m_hWnd   ==   m_xxx.m_hWndTop

7 楼yessong(夜菘)回复于 2002-05-14 15:32:59 得分 0

m_xxx没有m_hWndTop

8 楼yessong(夜菘)回复于 2002-05-14 15:49:27 得分 0

还是不能解决。谁来帮忙,立马解贴。Top

9 楼yessong(夜菘)回复于 2002-05-15 09:38:37 得分 0

今天有人答吗?问题解决马上解贴。  
  Top

10 楼Miao__Miao(妙妙)回复于 2002-05-15 11:53:50 得分 0

upTop

11 楼feng_sky(日三而省.)回复于 2002-05-15 12:10:49 得分 5

**************************  
  下面也是根据一个网友提供的方法而作的!  
   
  ********************************  
  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);    
   
  .....  
  Top

12 楼Frank_Xu()回复于 2002-05-15 14:08:59 得分 0

if(pWnd==&控件變量)  
  似乎有点问题。  
  控件变量指ID还是m_xxx呢?  
   
  你用ClassWizard定義一個CEdit   ID   的變量,如CEidt   m_edit_test;  
  指m_xxx,不是ID.Top

13 楼cwsuperman(cwsuperman)回复于 2002-05-15 14:13:12 得分 0

sb,pWnd怎么可能是ID呢,哈哈。Top

14 楼yessong(夜菘)回复于 2002-05-15 15:43:27 得分 0

是不是我没说清楚呢?  
  我在对话框加入了controls中的edit   box组件,图标是ab|  
  普通情况下为白底黑字。  
  将它改成只读后变成灰底黑字,字不太明显,于是我想将灰底  
  的颜色改掉。  
  这就是我的问题,现在有人能帮我解决了吗?Top

15 楼drummer()回复于 2002-05-15 16:01:15 得分 0

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;  
  }Top

16 楼eastrock(东方之石)回复于 2002-05-15 16:16:16 得分 5

重載WM_CTLCOLOR,msdn上有example  
  再不然的话,可以自己写一个以CEdit为基类的类,但这样子会比较麻烦就是。如果你只是要设置背景的话,那没有必要自己写一个类Top

17 楼eaglerock(小小菜鸟)回复于 2002-05-15 17:45:48 得分 0

换对话框的颜色,再把edit框的背景模式设为透明就好多了。我就是这样做的Top

责任编辑: efish 参与评论 查找更多:
相关文章
创建MFC工程出错 创建MFC工程出错
哪里能下载2002 January的MSDN? 哪里能下载2002 January的MSDN?
紧急 请教,我想查找有相同序号的记录中编号最大的… 紧急 请教,我想查找有相同序号的记录中编号最大的记录怎么办啊?
如何连接安装了多个实例的SQL Server 2000 如何连接安装了多个实例的SQL Server 2000
由Window.open打开的新窗口,如何通过其中的超级链接… 由Window.open打开的新窗口,如何通过其中的超级链接来使父页转到另一页??
哪有完整的More Effective(中文版)的电子书下载?… 哪有完整的More Effective(中文版)的电子书下载?本人在线,下载成功立即给分!!!
听说能看到网站上的ASP原码,真的吗?用什么方法,谁… 听说能看到网站上的ASP原码,真的吗?用什么方法,谁知道?
freeform式的datawindow显示方式的问题! freeform式的datawindow显示方式的问题!
精英P61EAT + CIII 1000A,我都要爆了 精英P61EAT + CIII 1000A,我都要爆了
隐藏窗口怎么做? 隐藏窗口怎么做?
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎