2


0

MFCで、テキストボックスのコピーペーストを制限する方法は?

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

1 Answer


1


私は問題を解決する2つの方法を見つけました…​.以下をチェックしてください…​

第一の方法:

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のテキストをキャプチャし、制限された文字を超えているかどうかを確認します。