在Win32中仅接受文本框(编辑控件)中的字符和空格

时间:2012-10-09 09:24:53

标签: winapi

我不知道当我们输入文本框时文本框如何只接受字符和空格。我认为我们可以使用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     */

void 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 */

1 个答案:

答案 0 :(得分:1)

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

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

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