我已经构建了一个自定义控件,我正在尝试向其发送输入。它将接受鼠标输入并正确报告 MouseDown、MouseMove 和 MouseUp,但无论出于何种原因,它都不会接受键盘输入。当我单击它时,它不会获得焦点,并且我按下的任何键都会被已经获得焦点的任何控件解释。
这可能是非常简单的事情。我想查看的第一个地方是 ControlStyle 属性,但我在帮助文件中看到的关于键盘输入的唯一内容是csNoStdEvents
,这会禁用它,而我的控件没有该功能。那么我需要做什么才能使我的控件能够接收输入焦点呢?
有几点值得尝试:
- On
MouseDown
, call Windows.SetFocus(Handle)
。根据我的经验,WinAPI 函数SetFocus
通常比 VCL 效果更好SetFocus
method.
- 响应
WM_GETDLGCODE
留言,回复Message.Result := Message.Result or DLGC_WANTCHARS or DLGC_WANTARROWS or DLGC_WANTTAB or DLGC_WANTALLKEYS
;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)