对一个隐藏的窗口调用置顶函数,会争夺其他窗口的输入焦点吗

谁学逆向工程 2017-07-27 02:49:49
我做了个程序,窗口刚创建的时候是隐藏的,它在接受到TCP输入的时候才会调用
ShowWindow(hwnd,SW_SHOW);

把窗口显示出来。
收到别的TCP信号的时候会隐藏窗口
ShowWindow(hwnd,SW_HIDE);

窗口过程中有一句
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

也就是无论收到什么消息都把窗口置顶。之所以反复调用置顶函数是因为这个功能隔几天就没效果,需要重启程序。(补充一句这台电脑是一直开机的)

对方电脑有一个c#做的进销存软件,进销存软件中有个表格控件,类似 MFC 的 CListCtrl。表格控件有一列是输入条码,输完条码之后按回车查询数据库补充一部分其他列,之后输入焦点自动跳转到“零头数量”一列让输入,这时候可以按下一次数字键,输入一个数字之后进销存软件就失去焦点了,标题栏颜色都变了。
我又在Excel 中实验了,发现没有丢失焦点的现象。



...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xinhaoda 2017-08-02
  • 打赏
  • 举报
回复
隔几天就没效果,说明是有其它因素影响。
schlafenhamster 2017-07-27
  • 打赏
  • 举报
回复
“不激活窗口” 就不会抢焦点
谁学逆向工程 2017-07-27
  • 打赏
  • 举报
回复
引用 4 楼 schlafenhamster 的回复:
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
MSDN说这个参数不激活窗口,这啥意思,我试试没啥不一样的效果
schlafenhamster 2017-07-27
  • 打赏
  • 举报
回复
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
赵4老师 2017-07-27
  • 打赏
  • 举报
回复
百度搜相关关键字。
谁学逆向工程 2017-07-27
  • 打赏
  • 举报
回复
引用 1 楼 schlafenhamster 的回复:
SWP_NOACTIVATE ?
在什么时候什么函数里用这个参数
schlafenhamster 2017-07-27
  • 打赏
  • 举报
回复
SWP_NOACTIVATE ?

15,979

社区成员

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

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