我想让我的CRichedit只用来显示文本,但不出现光标闪烁,不知道如何做?
各位帮偶啊。

解决方案 »

  1.   

    pmyRichEditCtrl->HideSelection(FALSE, TRUE);
      

  2.   

    this->HideCaret();this是CRichEditCtrl的对象指针
      

  3.   

    但是HideCaret之后,失去焦点了,再获得焦点,你会发现Caret又会出现所以你可能还要处理WM_SETFOCUS,在这个消息里面加入HideCaret
      

  4.   

    对啊。。我用的就是 HideCaret ,返回值都是 TRUE,但是 光标还是在。我试一下
     phoenix96_2000(eXMe) ( ) 的方法。
      

  5.   

    对啊。。我用的就是 HideCaret ,返回值都是 TRUE,但是 光标还是在。我试一下
     phoenix96_2000(eXMe) ( ) 的方法。
      

  6.   

    问题还是没有解决啊。。我的RichEdit是用CreateEx()创建的,在Richedit我能得到WM_ONSETFOCUS消息么?我手动添加消息afx_msg void OnSetFocus(CWnd* pOldWnd);竟然没有反应?
      

  7.   

    需要重载2个,一个是得到焦点,一个是失去焦点,否则老是在得到焦点里隐藏光标,不在失去焦点时显示光标,最后可能得不到光标了afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
      

  8.   

    HideSelection(FALSE, TRUE);试试
      

  9.   

    刚才我试了一下CEdit的,是OK 的:
    class CMyEdit : public CEdit
    {
    ...
    protected:
    //{{AFX_MSG(CMyEdit)
    afx_msg void OnSetFocus(CWnd* pOldWnd);
    //}}AFX_MSG DECLARE_MESSAGE_MAP()
    };
    BEGIN_MESSAGE_MAP(CMyEdit, CEdit)
    //{{AFX_MSG_MAP(CMyEdit)
    ON_WM_SETFOCUS()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    void CMyEdit::OnSetFocus(CWnd* pOldWnd) 
    {
    CEdit::OnSetFocus(pOldWnd);
    HideCaret();
    }
      

  10.   

    我用的方法跟 phoenix96_2000(eXMe) 一样,不过我不是CEdit,是RICHEDIT20A,不知道跟这个由什么干系么?
      

  11.   

    消息重载是不是错了?afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);