我正在使用C WinAPI编写一篇' Go To Line'记事本的对话框。我创建了一个仅限编辑控件。但我仍然可以将文字粘贴到编辑控件中! Windows记事本中的对话框确实阻止了这种粘贴。那么我怎么能在记事本中做同样的事情呢?
答案 0 :(得分:2)
编辑控件的子类,当收到WM_PASTE时:
OpenClipboard
GetClipboardData
GlobalLock
现在使用GlobalLock返回的指针检查非数字字符。如果找到非编号,则通知用户:
GlobalUnlock
CloseClipboard
并从回调中返回0以防止将数据粘贴到编辑控件中。
如果是全部数字,则GlobalUnlock
和CLoseClipboard
并使用CallWindowProc
传递消息以允许粘贴。
答案 1 :(得分:0)
ES_NUMBER的文档(我认为你正在使用它)说:
仅允许在编辑控件中输入数字。请注意,即使使用此设置,仍可以将非数字粘贴到编辑控件中。
为防止粘贴非数字,您需要扫描剪贴板中的数据并防止粘贴(如果包含非数字)。