【问题标题】:Accept only character and space in text box(edit control) in Win32Win32 中仅接受文本框(编辑控件)中的字符和空格
【发布时间】: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 中

标签: winapi


【解决方案1】:

当您在WndProc 中收到 Windows 消息时,您将获得目标窗口句柄作为 hWnd 传递。您可以将此值与每个控件的存储句柄进行比较,以确定哪个触发了事件。

如果是相关的编辑控件,您可以过滤和更改文本以适应。

请注意,有很多方法可以更改不涉及WM_KEYDOWN 消息的编辑控件中的文本,例如,右键单击并粘贴。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2010-11-14
    • 2011-11-15
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多