关于窗口激活问题,困扰着我好多年了,各位方法都试过了都没能解决,而且我在网上找都三天两夜了
程序功能是这样的,窗口激活后在前台显示且获得输入焦点。
先说我第一个测试方法: _启动窗口.总在最前=真 来测试,结果是窗口在是前台显示了但没能获得输入焦点..然后我再加上 _启动窗口.获取焦点 () 虽然有输入焦点但还是不能直接输入,要用鼠标点一下这窗口才能进入编辑框内容输入..最终以失败告终
第二个测试方法: 用API函数SetForegroundWindow来激活,这个有点奇葩,它在易语言中按F5测试成功了,但编译或静态编译后它就奇葩了:只是窗口在任务栏闪了两下,即没有前台显示也没获得焦点..最终还是失败
附上我测试方法,先在窗口添加三个组件,按钮\标签\编辑框.代码如下:
.版本 2
.支持库 spec
.子程序 _按钮1_被单击
.局部变量 TEST, 整数型
延迟 (5000)
TEST = API_SetForegroundWindow (取窗口句柄 ())
标签1.标题 = 到文本 (TEST)
_启动窗口.总在最前 = 真
_启动窗口.获取焦点 ()
(代码的流程意思是,程序运行后 先点一下按钮后再把窗口后台,5秒后执行激活代码,看看是否能自动前台显示激活)
以下提提供SetForegroundWindow的DLL命令给大家测试:
.版本 2
.DLL命令 API_SetForegroundWindow, 整数型, "user32", "SetForegroundWindow", , , 将窗口设为系统的前台窗口。这个函数可用于改变用户目前正在操作的应用程序 非零表示成功,零表示失败。会设置GetLastError
.参数 hwnd, 整数型