我不知道当我们输入文本框时文本框如何只接受字符和空格。我认为我们可以使用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 */
答案 0 :(得分:1)
当您在WndProc
中收到Windows消息时,您将目标窗口句柄传递为hWnd
。您可以将此值与每个控件的存储句柄进行比较,以确定触发事件的位置。
如果是相关的编辑控件,则可以过滤并更改文本以适应。
请注意,有许多方法可以更改编辑控件中不涉及WM_KEYDOWN
消息的文本,例如右键单击并粘贴。