MFC的CEdit多于1024个字符自动换行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC的CEdit多于1024个字符自动换行相关的知识,希望对你有一定的参考价值。

如题,MFC的CEdit控件,已有属性:多行,自动上拉下拉,有水平滚动条、垂直滚动条。但是当一行多于1024个字符时,会自动换行,实际上我不需要换行。如何实现一行无论多少个字符也不会自动换行?
高手在哪?!!!

不换行,换个控件吧,用CListBox,使用方法很简单。
AddString就行。

你截个图,我看看你的上拉下拉和水平滚动。CEdit有这属性?
参考技术A 一般来说用户是不喜欢横向滚动的,这么设计由他的道理

MFC:更改 CEdit 的颜色

【中文标题】MFC:更改 CEdit 的颜色【英文标题】:MFC: Changing the colour of CEdit 【发布时间】:2008-10-20 10:50:53 【问题描述】:

各位,谁能给我简要介绍一下如何在运行时更改 CEdit 控件的背景颜色?如果字段长度为零,我希望能够将背景更改为红色,否则为正常的白色。

【问题讨论】:

【参考方案1】:

你不能用普通的 CEdit 来做到这一点,你需要覆盖一些位。

实现您自己的 ON_WM_CTLCOLOR_REFLECT 处理程序,然后在处理程序中返回您的彩色 CBrush:

(粗略地说,你需要把通常的资源管理放在那里,记住要在析构函数中删除你的画笔)

class CColorEdit : public CEdit

  ....
  CBrush   m_brBkgnd;
  afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor)
  
    m_brBkgnd.DeleteObject();
    m_brBkgnd.CreateSolidBrush(nCtlColor);
  

【讨论】:

【参考方案2】:

这也可以在不从 CEdit 派生的情况下完成:

    ON_WM_CTLCOLOR() 添加到对话框的BEGIN_MESSAGE_MAP() 代码块中。

    OnCltColor() 添加到您的对话框类中:

    afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
    

    像这样实现OnCtlColor()

    HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    
        if ((CTLCOLOR_EDIT == nCtlColor) &&
            (IDC_MY_EDIT == pWnd->GetDlgCtrlID()))
        
            return m_brMyEditBk; //Create this brush in OnInitDialog() and destroy in destructor
        
        return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
    

【讨论】:

以上是关于MFC的CEdit多于1024个字符自动换行的主要内容,如果未能解决你的问题,请参考以下文章

MFC EDIT类控件 自动换行

MFC编辑框Edit

循环截取字符串添加换行

用js实现在textarea中每输入15个字符串自动换行 输入汉字超过15个就去加/n自动换行

vim里设置tab及自动换行

vim里设置tab及自动换行