MFC Richedit隐藏光标
2010-02-08 19:03
288 查看
[align=center]MFC Richedit隐藏光标
[/align]
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() 里的方法。
[/align]
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() 里的方法。
相关文章推荐
- VC/MFC中使用RichEdit 要注意的地方
- mfc richedit 自动换行设置
- MFC中隐藏和显示光标
- [MFC]RichEdit响应回车换行,自动水平/垂直滚动
- MFC 控件richedit
- VC/MFC中使用RichEdit 要注意的地方
- MFC RichEdit
- MFC RICHEDIT设置等宽字体
- MFC应用---超链接RichEdit
- MFC应用---超链接RichEdit
- 在delphi里的RichEdit指定光标到某行某列
- mfc richedit 自动换行
- MFC RichEdit的用法
- BCB将RichEdit光标移到最后一行
- MFC 实现richedit右键菜单的复制粘贴功能
- MFC RichEdit使用
- Fucked MFC RichEdit In Visual c++2010!
- MFC:RichEdit and CFindReplaceDialog
- MFC RichEdit的用法汇总
- MFC RichEdit的使用