您的位置:首页 > 其它

如何屏蔽CEdit控件中复制功能的另类方法

2005-01-19 16:23 323 查看
最近一个项目需要将CEdit控件的复制功能屏蔽掉,思来想去用了一个比较另类的方法解决了此问题。

基本思想:1 将CEdit控件的右键消息处处理掉,防止通过右键菜单中的复制选项,但是还可以利用快捷键ctrl+c复制

                    2 将CEdit控件中的鼠标移动消息处理掉,防止用鼠标选中文本

                    3 将CEdit控件的鼠标双击消息处理掉,防止利用双击选中文本

实现这几个功能CEdit控件的复制功能就无法实现了

实现步骤:

1. 从CEdit类派生出自己的类CMyEdit类

class CMyEdit : public CEdit

{

// Construction

public:

 CMyEdit();

// Attributes

public:

// Operations

public:

// Overrides

 // ClassWizard generated virtual function overrides

 //{{AFX_VIRTUAL(CMyEdit)

 //}}AFX_VIRTUAL

// Implementation

public:

 virtual ~CMyEdit();

 // Generated message map functions

protected:

 //{{AFX_MSG(CMyEdit)

 afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);

 afx_msg void OnRButtonDown(UINT nFlags, CPoint point);

 afx_msg void OnMouseMove(UINT nFlags, CPoint point);

 //}}AFX_MSG

 DECLARE_MESSAGE_MAP()

};

2.重载鼠标右键消息函数

void CMyEdit::OnRButtonDown(UINT nFlags, CPoint point)

{

 // TODO: Add your message handler code here and/or call default

 

 //CEdit::OnRButtonDown(nFlags, point);将原有的CEdit右键函数屏蔽掉,是他失去功能

}

3.重载鼠标移动消息函数

void CMyEdit::OnMouseMove(UINT nFlags, CPoint point)

{

 // TODO: Add your message handler code here and/or call default

 

 //CEdit::OnMouseMove(nFlags, point);

}

4.重载鼠标双击消息函数

void CMyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)

{

 // TODO: Add your message handler code here and/or call default

 

 //CEdit::OnLButtonDblClk(nFlags, point);

}

5.将CMyEdit类实例化

    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐