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 中仅接受文本框(编辑控件)中的字符和空格的主要内容,如果未能解决你的问题,请参考以下文章

win32编辑框设置提示文字

win32day09-对话框/子控件/静态块/按钮/文本编辑框

Win32编辑控件默认文本

树视图中的 Win32 文本框

如何在 WPF 文本框中仅接受整数 [重复]

编辑控件不会获得焦点! win32 c++