c - 如何禁用将单词粘贴到仅限数字的编辑控件中?

标签 c winapi dialog notepad editcontrol

我正在用 C WinAPI 编写记事本的“转到行”对话框。我创建了一个仅限数字的编辑控件。但我仍然可以将文字粘贴到编辑控件中! Windows 记事本中的对话框确实会阻止这种粘贴。那么我怎样才能做与记事本中相同的事情呢?

最佳答案

子类化编辑控件,当收到 WM_PASTE 时:

OpenClipboard
GetClipboardData
GlobalLock

现在使用 GlobalLock 返回的指针来检查非数字字符。如果发现非号码,则通知用户:

GlobalUnlock
CloseClipboard

并从回调返回 0 以防止将数据粘贴到编辑控件中。

如果全是数字,则使用 GlobalUnlockCLoseClipboard 并使用 CallWindowProc 传递消息以允许粘贴。

关于c - 如何禁用将单词粘贴到仅限数字的编辑控件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13432097/

相关文章:

c - stat()在c中给出错误的目录大小

c - 有没有办法在 C 中为 i_block 创建迭代器风格的函数?

c++ - Linux 和 MSVC Win32 上 C++ 中模板类实现之间的差异

css - Jquery UI 模态对话框阻塞背景屏幕

Android:将 View 带到对话框的前面

jquery-mobile - 如何制作非全屏的 jQuery Mobile 对话框?

客户端和服务器+排序

c - 将 realloc() 返回的地址分配给同一个指针是好的编码习惯吗?

java - 使用 JNA 从 Windows 访问工具提示

c++ - 32 位 int 类型的 Win API 互锁操作