0

私はC WinAPIでメモ帳の「Go To Line」ダイアログを書いています。数値のみの編集コントロールを作成しました。しかし、編集コントロールに単語を貼り付けることができます! Windows メモ帳のダイアログは、この種の貼り付けを停止します。では、メモ帳と同じことをどのように行うことができますか?

4

2 に答える 2

2

エディット コントロールをサブクラス化し、WM_PASTE を受け取った場合:

OpenClipboard
GetClipboardData
GlobalLock

ここで、GlobalLock から返されたポインターを使用して、数字以外の文字をチェックします。番号以外が見つかった場合は、次のようにユーザーに通知します。

GlobalUnlock
CloseClipboard

コールバックから 0 を返して、データが編集コントロールに貼り付けられないようにします。

すべて数字の場合は、GlobalUnlockandCLoseClipboardと with でメッセージを渡しCallWindowProcて、貼り付けを許可します。

于 2012-11-17T17:04:38.277 に答える
0

ES_NUMBERのドキュメント(これはあなたが使用していると私が推測するものです)は次のように述べています:

編集コントロールに数字のみを入力できるようにします。このセットを使用しても、エディットコントロールに数字以外の数字を貼り付けることができることに注意してください。

数字以外の貼り付けを防ぐには、クリップボードのデータをスキャンして、数字以外のデータが含まれている場合は貼り付けを防ぐ必要があります。

于 2012-11-17T16:43:27.623 に答える