德尔福 – 避免窗口获得焦点

前端之家收集整理的这篇文章主要介绍了德尔福 – 避免窗口获得焦点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在虚拟键盘上工作的问题是,当我按下虚拟键盘上的键时,需要发送数据的窗口失去焦点.我怎么能避免这种情况?

解决方法

当您的键盘形式获得焦点时,它接收的部分消息是失去焦点的窗口的句柄(wParam).做你需要做的事情并将焦点设置回失去焦点的窗口.

编辑:请参阅WM_SETFOCUS上的文档

编辑2:

此外,您可以在创建自定义表单时使用以下内容

procedure TMainForm.CreateParams(var Params: TCreateParams) ;
 //const WS_EX_NOACTIVATE = $8000000;
 begin
   inherited;
   Params.ExStyle := Params.ExStyle + WS_EX_NOACTIVATE;
 end;

防止表单激活(从其他表单获取焦点).就像我在评论中提到的那样,你可能应该使用非窗口控制键.

猜你在找的Delphi相关文章