2

私は MFC で小さなアプリケーションを開発しています...少し問題があります..皆さんがこれに関して私を助けてくれることを願っています...さあ..問題は...私は 6 つの小さな編集コントロール (テキスト ボックス) を持っていますユーザーがいくつかの数字を入力できるようにします..文字/テキストボックスの数を4に制限しましたが、ユーザーはn個の数字をコピーして貼り付けることができます....編集でコピー貼り付けオプションを制限するにはどうすればよいですかコントロール....私を助けてください...

4

1 に答える 1

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.
}

2 番目の方法: ON_EN_CHANGEイベントを 処理し、CString 内のテキストをキャプチャし、制限された文字を超えているかどうかを確認します..その場合..警告メッセージでテキスト ボックスをクリアできます...

于 2010-02-23T09:44:01.610 に答える