如何让本程序抢到焦点(看似简单,实际麻烦的小问题)

zcd_jimy 2010-09-10 03:29:06
一个对话框程序,启动后,有个定时,每5秒自动抢焦点,
就像ALT+TAB的切换程序效果,焦点切换给自己。
用了N种方法,SetWindowPos, SetActiveWindow, WM_ACTIVATEAPP, SetFocus, SetForegroundWindow, SwitchToThisWindow,
都达不到效果,最多在任务栏上高亮了,但就是没抢到焦点,非得要用鼠标点一下对话框才行。
TX们还没有什么高招?
...全文
275 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
icycode 2010-10-13
  • 打赏
  • 举报
回复
::SetWindowPos(GetSafeHwnd(),HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE);

初始化时加上这句,如果还不行的话再OnActive中再加一遍
向立天 2010-10-13
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
zcd_jimy 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 jeam0402 的回复:]
这个MARK一下
上次我用过

C/C++ code
SendMessage(WM_ACTIVATE, 0 , 0);

好像可以,LZ可以试试看
[/Quote]

实际就是SetActiveWindow(), 发消息和调API都试过了,也不行
NIKE霸天虎 2010-09-13
  • 打赏
  • 举报
回复
关注。。
jeam0402 2010-09-13
  • 打赏
  • 举报
回复
这个MARK一下
上次我用过
SendMessage(WM_ACTIVATE, 0 , 0);

好像可以,LZ可以试试看
zcd_jimy 2010-09-13
  • 打赏
  • 举报
回复
操作系统是XP,
单屏下用SwitchToThisWndows + SetFocus已搞定,
但双屏下仍然只是任务栏高亮,郁闷啊
zcd_jimy 2010-09-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 kongfanmings 的回复:]
C/C++ code
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);



重点是&wndTopMost
[/Quote]

试了,不行
kongfanmings 2010-09-13
  • 打赏
  • 举报
回复
        SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);


重点是&wndTopMost
zyrr159487 2010-09-12
  • 打赏
  • 举报
回复
应该不是焦点的问题,高亮的话代表焦点已经切换上去了,窗口没有弹出来应该与焦点无关的吧
haogeai123 2010-09-12
  • 打赏
  • 举报
回复
我用SetForegroundWindow测试了,行。我用的是Win7操作系统,VS2008 IDE。不知道LZ是什么原因了。完毕
长尾巴的悟空 2010-09-12
  • 打赏
  • 举报
回复
那得确定你是要传给哪个窗口,任务栏里的你想传谁?
一名程序员 2010-09-12
  • 打赏
  • 举报
回复
SendMessage(m_hWnd,WM_SETFOCUS,0,0);
明寿 2010-09-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zcd_jimy 的回复:]
恩,用SendInput模拟鼠标点击可以抢到焦点,但鼠标也移到对话框上了,
要求是鼠标还不能移动。
[/Quote]

大不了计下原鼠标的位置,模拟点击后再返回。速度快点是看不出来把
na_he 2010-09-10
  • 打赏
  • 举报
回复
关注。。
zcd_jimy 2010-09-10
  • 打赏
  • 举报
回复
恩,用SendInput模拟鼠标点击可以抢到焦点,但鼠标也移到对话框上了,
要求是鼠标还不能移动。
孤客天涯 2010-09-10
  • 打赏
  • 举报
回复
可以参考屏幕键盘的做法,楼主google一下就能找到相关的例子

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧