VC++中,mfc 按下按钮 文本框变色 怎么搞?详细点进来

MFC下有编辑框A,按钮B,按钮C,怎么写程序可以按下B后使A的背景变白色,按下C后变成红色?最好能写一个MFC程序给我,谢谢!... MFC下有编辑框A,按钮B,按钮C,怎么写程序可以按下B后使A的背景变白色,按下C后变成红色?
最好能写一个MFC程序给我,谢谢!
展开
 我来答
任明星Ming
推荐于2016-03-14 · TA获得超过798个赞
知道小有建树答主
回答量:1061
采纳率:100%
帮助的人:1150万
展开全部
一。首先,利用Class Wizard为WM_CTLCOLOR 消息构造相应的消息映射,将得到以下的消息处理函数:
     //说明,WM_CTLCOLOR 是从CWnd就有的,所以直接从CWnd或是CDialogue类(其实也是从CWnd中继承来的)继承的都可以
  HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
二。在MyDlg.h头文件中增加如下的函数说明:
    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
     ....
     DECLARE_MESSAGE_MAP()
     protected:
        static HBRUSH  m_BrushBack;
三。在MyDlg.cpp文件中初始化静态变量:
      HBRUSH  CMyDlg::m_BrushBack = HBRUSH(RGB(235,235,235));
 
四。在MyDlg.cpp文件中增加如下的消息映射:
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
        ON_WM_CTLCOLOR()   //增加此条目
        ....
    再增加如下的消息处理函数:
     HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  {
  //获得控件
   CEdit * pEdit = (CEdit *)GetDlgItem(IDC_MYEDIT);  //此处的IDC_MYEDIT即为CMyDlg窗口中要设置的CEdit控件的ID
   if(pEdit->GetSafeHwnd() == pWnd->GetSafeHwnd())
  {
      // 返回设置好的刷子
      return m_BrushgRA;
   }
   HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   return hbr;
  }
更多追问追答
追问
最好能写一个MFC程序给我,谢谢!
追答

已完成,请验收。


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式