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

我在虚拟键盘上工作的问题是,当我按下虚拟键盘上的键时,需要发送数据的窗口失去焦点.我怎么能避免这种情况?

解决方法

当您的键盘形式获得焦点时,它接收的部分消息是失去焦点的窗口的句柄(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;

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

相关文章

ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c++ 调用, 抽空研究了一下该库的最新版 ,把...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的功能是:将源操作数送到目的操作数中,即:...
有三个API函数可以运行可执行文件WinExec、ShellExecute和CreateProcess。 1.CreateProcess因为使用复杂...
API原型: Declare Function MoveFileEx& Lib "kernel32" Alias "MoveFileExA" (By...