• MFC Richedit隐藏光标


    MFC Richedit隐藏光标

    1.重载Richedit LButton事件
    void CChatRichEd::OnLButtonDown(UINT nFlags, CPoint point)
    {
      CRichEditCtrl::OnLButtonDown(nFlags, point);
      HideCaret();
    }
    2.如果还有网页链接,同时在EN_Link最后面
     HideCaret();


    改变Richedit默认可编辑鼠标状态
    重载OnSetCursor,m_isLink用来判断是否是链接,

    BOOL CChatRichEd::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
    {
      // TODO: 在此添加消息处理程序代码和/或调用默认值

      //return CRichEditCtrl::OnSetCursor(pWnd, nHitTest, message);
      if (m_isLink)
      {
         m_isLink=FALSE;
        return CRichEditCtrl::OnSetCursor(pWnd, nHitTest, message);
      }
      else
      {
        SetCursor( AfxGetApp()->LoadStandardCursor(IDC_ARROW));
        return true;
      }
    }

    EN_Link的事件
    m_isLink=true.

    这样,链接就以手型显示。

    网上其他的方法隐藏Caret

    1.  在cpp文件的MESSAGE_MAP声明后添加如下全局变量和函数:  
       
      WNDPROC   oldProc   ;  
       
      LRESULT   CALLBACK   ReditWindowProc(  
          HWND   hwnd,             //   handle   to   window  
          UINT   uMsg,             //   message   identifier  
          WPARAM   wParam,     //   first   message   parameter  
          LPARAM   lParam     //   second   message   parameter  
      )  
      {  
      switch   (uMsg)  
      {  
      case   WM_SETFOCUS:  
      return   0   ;  
       
      default:   NULL   ;  
      }  
      return   oldProc(hwnd,uMsg,wParam,lParam)   ;  
      }  
       
      在OnInitDialog()中调用:  
       
      //   TODO:   Add   extra   initialization   here  
       
      oldProc   =   (WNDPROC)::SetWindowLong  
      (m_richEdit.m_hWnd,GWL_WNDPROC,(LONG)ReditWindowProc)   ;  
       
      这样就可以隐藏caret:)    

    2. 直接注释掉OnSetFocus() 里的方法。

  • 相关阅读:
    *** 疑问
    *** C++动态绑定(多态)example code 1
    *** C++纯虚函数使用example code 1
    *** C++实现string各类运算符重载成员函数
    *** C++虚函数表原理相关代码
    *** 自写MyString类:重载操作符 '+'
    *** [转]C++在类的成员函数中,允许直接访问该类的成员对象的私有成员变量
    *** [转] C++基础篇--overload重载&override覆盖&overwrite隐藏
    *** C++ 中的函数重载
    *** 关于虚函数的一些常见问题
  • 原文地址:https://www.cnblogs.com/likwo/p/1666067.html
Copyright © 2020-2023  润新知