Win32 中仅接受文本框(编辑控件)中的字符和空格
Posted
技术标签:
【中文标题】Win32 中仅接受文本框(编辑控件)中的字符和空格【英文标题】:Accept only character and space in text box(edit control) in Win32 【发布时间】:2012-10-09 09:24:53 【问题描述】:当我们输入文本框时,我不知道如何让文本框只接受字符和空格。我只是认为我们可以使用 WM_Keydown 但我只是猜测它不知道我们输入的是哪个编辑控件。 这是我创建表单的代码
void CREATE_EDITNAMECONTROL()
Create_Control( hNameEditControl, /* Handle */
NULL,//NULL, /* Handle of parent */
L"Edit", /* class name */
ID_EDIT_CONTROl , /* ID */
L"", /* Caption/Title */
EDITCONTROL_STYLE, /* Style */
200, /* Position X */
70, /* Position Y */
160, /* Width */
30 ); /* Height */
无效 CREATE_EDITDATECONTROL()
Create_Control( hDateEditControl, /* Handle */
NULL,//NULL, /* Handle of parent */
L"Edit", /* class name */
ID_EDIT_CONTROl , /* ID */
L"", /* Caption/Title */
EDITCONTROL_STYLE, /* Style */
200, /* Position X */
110, /* Position Y */
160, /* Width */
30 ); /* Height */
【问题讨论】:
key_down
事件?本机 Windows API 不使用类似的“事件”来支持消息。您能否更新您的问题以说明您正在使用哪个框架。
sr 因为我刚刚了解了 win API。它在 WM_KEYDOWN 中
【参考方案1】:
当您在WndProc
中收到 Windows 消息时,您将获得目标窗口句柄作为 hWnd
传递。您可以将此值与每个控件的存储句柄进行比较,以确定哪个触发了事件。
如果是相关的编辑控件,您可以过滤和更改文本以适应。
请注意,有很多方法可以更改不涉及WM_KEYDOWN
消息的编辑控件中的文本,例如,右键单击并粘贴。
【讨论】:
以上是关于Win32 中仅接受文本框(编辑控件)中的字符和空格的主要内容,如果未能解决你的问题,请参考以下文章