2010-02-23 177 views
2

我正在MFC中开发一个小应用程序......有一个小问题..希望你们能够帮助我解决这个问题...我们现在去......问题是......我有6个小编辑控件(Text框),其中我将允许用户输入一些数字..我已经限制字符数/文本框为4,但它允许用户复制和粘贴n个数字....如何限制复制粘贴选项编辑控件....请帮我...如何在MFC中限制文本框中的复制粘贴?

回答

1

我找到解决问题的2种方式....请检查下面...

第1种方法:

class CNoPasteEdit: public CEdit 
{ 
public: 
CNoPasteEdit(); 
~CNoPasteEdit(); 
protected: 
// This line will need to be added by hand because WM_PASTE is not available in 
// class wizard 
afx_msg void OnPaste(WPARAM wParam, LPARAM lParam); 
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); 
DECLARE_MESSAGE_MAP() 
}; 

然后,你将需要编辑.cpp文件该类像这样

CNoPasteEdit::CNoPasteEdit(){ 
// Put any construction code here 
} 

CNoPasteEdit:~:CNoPasteEdit(){ 
// Put any destruction code here 
} 

BEGIN_MESSAGE_MAP(CNoPasteEdit, CEdit) 
// This line is needed because there is no default macro for WM_PASTE messages 
// This line will also need to be added by hand 
ON_MESSAGE(WM_PASTE, OnPaste) 
ON_WM_CONTEXTMENU() 
END_MESSAGE_MAP() 

void CNoPasteEdit::OnPaste(WPARAM wParam, LPARAM lParam){ 
// Put any code here you want to execute when the user right clicks on the edit 
// control. Just leave it blank to disable the menu 
} 

void CNoPasteEdit::OnContextMenu(CWnd* pWnd, CPoint point){ 
// Put any code here you want to execute when the user tries to paste into the edit 
// conrtol. Just leave it blank to prevent pasting. 
} 

第二个方法: 处理好ON_EN_CHANGE事件,并捕捉到CString的文本,并检查其超过有限的字符..如果它可以清除带有警告信息的文本框...