章惇常与苏轼同游南山:VC Edit 换行与背景色问题

来源:百度文库 编辑:中财网 时间:2024/04/23 20:05:24
 

一 VC中Edit换行

          要使得VC中的Edit能换行,需进行以下设置(缺一不可):
  • 将Edit的Styles属性页中的Multiline复选框勾上;
  •  对于要显示的字符串中的换行符"\n"用"\r\n"替代,如:"Hello\r\nWorld";  

二 VC中Edit背景色

方法一

         利用向导映射CParentDlg的WM_CTLCOLOR消息,产生函数:HBRUSH CParentDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);pDC是AboutDlg的设备上下文,pWnd是CParentDlg中发送该消息的control指针,nCtlColor市Control的类型编码。对其进行如下修改:

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 

{

   if ((pWnd->GetDlgCtrlID() == IDC_EDIT1) && (nCtlColor == CTLCOLOR_EDIT))

   {

      COLORREF clr = RGB(255,0,0);

      pDC->SetTextColor(clr);   //设置红色的文本

      clr = RGB(0,0,0);

      pDC->SetBkColor(clr);     //设置黑色的背景

      m_brMine = ::CreateSolidBrush(clr);

      return m_brMine;  //返回的是背景色对应的刷子句柄

   }

   else

   {

      HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

      return hbr;

   }}

方法二

   自定义一个CColorEdit类,该类从CEdit派生,重写该类的OnCtlColor消息(如方法一),对使用背景色的Edit控件,将其声明为CColorEdit的类,则该Edit控件就能定制背景色和前景色了。