CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  进程/线程/DLL

如何防止用户切换窗口焦点

楼主oyd() oyd() oyd() oyd() oyd()2002-12-27 23:48:19 在 VC/MFC / 进程/线程/DLL 提问

在一本书上说有2种方式  
  1.重新处理WM_KILLFOCUS消息,重新使本窗口成为焦点  
  2.让本程序抓住鼠标.  
  但是他没有进一步解释以及给出代码。  
  有人能帮我吗? 问题点数:20、回复次数:10Top

1 楼demetry(智者橡木)回复于 2002-12-28 00:04:14 得分 0

在WM_KILLFOCUS的映射函数代码中,添加SetFocusTop

2 楼oyd() oyd() oyd() oyd() oyd()回复于 2002-12-28 11:48:17 得分 0

那么抓住鼠标该怎么做呢?  
  就是说无论用户在哪单击鼠标,应用程序都可以收到鼠标消息Top

3 楼cniou(混混)回复于 2002-12-28 12:28:08 得分 0

Lose   focus   can   also   be   caused   by   keyboard   messages,   simply   capture   the   mouse   message   will   not   help   much.  
   
  Anyway,   if   you   call   setfocus   in   onkillfocus,   it   might   cause   deadlock   in   the   message   loop   (see   MSDN)  
   
  If   you   really   want   to   keep   your   window   from   losing   focus,   why   not   use   win32   hook?   this   might   help.Top

4 楼guojun007(guojun)回复于 2002-12-28 15:54:57 得分 0

to   cniou:please   more   detailTop

5 楼qrlvls( 空 气 )回复于 2002-12-29 21:12:46 得分 5

一旦   WM_KILLFOCUS   就直接返回算了  
  SetMouseCaptureTop

6 楼wanglh(宏)回复于 2002-12-30 14:55:39 得分 5

用SetCapture函数  
  然后所有的消息都发到这个窗口上Top

7 楼hyamw(林锋)回复于 2002-12-30 17:24:14 得分 5

同意wanglh的看法。使用SetCapture()后,所有的鼠标消息都会返回给该程序。  
  要终止的话,使用ReleaseCapture()交还控制权;Top

8 楼oyd() oyd() oyd() oyd() oyd()回复于 2002-12-31 10:56:55 得分 0

那么如果别的程序用了SetCapture函数,在他还没有用ReleaseCapture交换控制权时,有没有代码可以暂时夺回控制权,因为我在编写游戏修改器,遇到了一些切换不出来的游戏程序Top

9 楼richardtmp(星際菜鳥)回复于 2003-01-02 16:21:13 得分 5

奇怪,怎麼大家都建議用SetCapture呢,我記得好象有本書上講過被設置了Capture的窗口只有在程式調用函數ReleaseCapture或指定另一個捕捉窗口再或是用戶單擊另一個線程創建的窗口之前才會接獲所有的mouse消息,亦即是說,如果用戶單擊了另一個線程創建的窗口,那原來被SetCapture的函口也就失效了,不再會收到屬於他窗口之外的mouse消息,同樓主的要求不是差了很多.  
  我是菜鳥,或許我的理解一直都錯了,但我記得我試過噢.......Top

10 楼oyd() oyd() oyd() oyd() oyd()回复于 2003-01-05 20:43:48 得分 0

有没有谁能给出代码Top

相关问题

  • 切换用户
  • 输入焦点切换
  • 按钮焦点的切换
  • 用ENTER切换焦点的问题。
  • Dbgrid控件中行焦点的切换
  • 控件焦点切换的问题
  • 窗体焦点切换问题
  • 焦点切换的问题,SetFucos()
  • 切换用户说权限不够
  • 如何实现 切换用户登陆???/

关键词

  • 鼠标
  • 函数
  • 消息
  • 代码
  • setcapture
  • killfocus
  • 控制权
  • releasecapture
  • 程序
  • mouse

得分解答快速导航

  • 帖主:oyd
  • qrlvls
  • wanglh
  • hyamw
  • richardtmp

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo