学无止境

人生的第10000天

改变右键菜单上的指针类型(20120929)

情景:
我做了个对话框,里面只包含一个富文本框。对应的类为CCmdRichEdit继承自CRichEditCtrl。
因为默认的CRichEditCtrl它不像CEdit那样,单击右键时是不会弹出菜单的。因此我自己实现了“复制”,“粘贴”,“剪切”功能的右键菜单。
随后发现,功能一切正常,但是当鼠标移至菜单上时,没有变成常见的那种箭头式指针。
过程:
尝试了在OnContextMenu,OnMouseMove, 中调用::SetCursor(LoadCursor(NULL, IDC_ARROW));
都不起作用。
注意:
每次移动鼠标,OnMouseMove都会默认的改变指针的样式,但在里面修改却对右键菜单不起作用。
解决办法:
1、设置个类变量m_bContext,在OnContext开始和结束分别设为 TRUE和FALSE;
2、OnSetCursor中根据m_bContext来改变光标形式。

BOOL CCmdRichEdit::OnSetCursor(CWnd *pWnd, UINT nHitTest, UINT message)
{
    //文本框右键的指针设为箭头
    if(m_bShowContext)
    {
        ::SetCursor(LoadCursor(NULL, IDC_ARROW));
        return TRUE;
    }
   
    return CRichEditCtrl::OnSetCursor(pWnd, nHitTest, message);
}


posted on 2012-09-29 18:00 leafcloudsky 阅读(310) 评论(0)  编辑 收藏 引用 所属分类: MFC


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


公告

本博客做为个人工作,生活,学习记录。多为个人经验,感想,不保证正确性。请酌情参考。

导航

<2012年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

统计

常用链接

留言簿

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜