焦点控制问题!!!!着急!!!

问题描述

情况是这样:C#的窗口调用了一个DX+C++的dll,显示一个三维游戏场景,并且可以响应键盘和鼠标操作,怎样做到当点击其他窗体时(其他任何窗口,比如浏览器),我的程序不再响应键盘和鼠标操作?注:此dll在C++写的窗口中时就是这样,但在我的C#窗口中时,不管窗口是否处于活动状态,三维场景都响应键盘和鼠标操作各位大侠,帮帮小弟吧,谢谢了!!!

解决方案

解决方案二:
你要看看C++的窗口里有没有特殊处理
解决方案三:
没有特殊处理啊,他是在Winmain函数里,先初始化InitD3D,然后在一个死循环里进行渲染,while(true)//(GetMessage(&msg,NULL,0,0)){//第二个参数是要获取哪个窗口的消息,为NULL是所有窗口的消息(HWND)//第三,四是消息最小,和最大取值if(PeekMessage(&msg,NULL,0U,0U,PM_REMOVE))//(!GetMessage(&msg,NULL,0,0))//(PeekMessage(&msg,NULL,0U,0U,PM_REMOVE)){if(msg.message==WM_QUIT){break;}TranslateMessage(&msg);//虚拟健盘的转换DispatchMessage(&msg);//传消息给回调函数}else{g_pD3D->Render();//调用D3D渲染图形//::WaitMessage();}}

但通过他的C++的演示,也许处理消息这一段有问题,但我不知道C#里如何获取系统消息并处理消息?
解决方案四:
你重写Form的WndProc方法,.net的Form通过这个方来来接收消息的。每次有消息发送到Form,都通过这个函数处理。
解决方案五:
恩,为了达到我在2楼的代码的效果,照你所说我重写了WndProc方法,调用了API函数,如下:[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name="FullTrust")]protectedoverridevoidWndProc(refMessagem){if(PeekMessage(m,(IntPtr)null,0,0,0x0001)){if(m.Msg==0x0012){return;}TranslateMessage(m);DispatchMessage(m);}else{this.Invalidate();//重写的OnPaint方法里进行了渲染Render()}}

我是这样认为的,不知道对不对?重写的WndProc方法相当于那个While(true)的死循环了,然后调用API做了和2楼代码相同的处理,但是却没有达到我在顶楼所说的效果,是因为2楼那段代码在C#中有专门的处理方法吗?应该怎么做啊?
解决方案六:
在对键盘或鼠标进行处理之前,可以检测一下是不是活动窗口。
解决方案七:
看样子的确要判断当前窗口是不是活动窗口了,用系统API,GetForegroundWindow
解决方案八:
引用4楼sjianlyer的回复:

恩,为了达到我在2楼的代码的效果,照你所说我重写了WndProc方法,调用了API函数,如下:C#code[System.Security.Permissions.PermissionSet(System.Security.Permissions.SecurityAction.Demand,Name="FullTrust")]protectedoverridevoidWndProc(refMessagem){if(PeekMessage(m,(IntPtr)null,0,0,0x0001)){if(m.Msg==0x0012)…

你把base.WndProc()也去掉了?可能窗口不会正常工作,base.WndProc()还是应该在最后调用的。

时间: 2024-09-29 09:19:33

焦点控制问题!!!!着急!!!的相关文章

button-求!!!!!!很着急的

问题描述 求!!!!!!很着急的 如何在vc++的对话框程序中,添加一个静态文本和一个button,点button是查找文件,然后假如选择.txt则在静态文本中显示txt中的内容 解决方案 http://zhidao.baidu.com/link?url=FPuzRCE8NLiLWIKvcL37Axqavpxr3G8S2ayt7Lxo46p4Bcqp9gWuz9gbC7jiW34LwpwKHZ5FjbxZN741LlCCvK 解决方案二: 不好意思,没有c币了 解决方案三: 相应代码,你可以参考

网站前瞻:新站一定不要着急上线

小猫经过和站长小伙伴们讨论后发现,做新网站的朋友都有一种很着急的感觉,着急让网站上线,着急让网站有排名,着急让度娘快点关注你.小猫在考虑做网站 的时候也有这样的想法,开始的时候随随便便的弄一个网站,也不仔细的规划下就草草的上线,然后想修改的时候就各种头疼,害怕度娘不疼自己了,哎,真是悲剧 啊.所以小猫在这想给各位小伙伴说一说,做网站的时候千万不要为了一点时间,网站没有规划好就着急上线了,这样弄出来真的会出很多的问题,最后导致自己要 花比这点时间多的多的时间和经历去修改而且还达不到自己想要的效果.

站长门不要着急升级你的程序版本

对于很多中小站长来说,感觉最新鲜的事情之一也许是自己使用的源代码出新版本了.很多人都迫不及待的升级.测试,希望自己的网站在最短的时间内成为第一批 应用新功能的用户.我以前也是这样一个人.无论是Discuz!还是wp还是bo-blog,我都可以说是在第一时间升级的.可是现在回头看看,也许等待 我们去做的事情太多,而我们关注的事情又是那么的不重要. 所以我要提出一个反面的论调:不要着急升级你的程序版本. 其实原因的话,都是我自己的经验之谈,也许各人和各人的经验不同,但我从2003年开始接触网站管理,

解决WEB页面上焦点控制一法

web|解决|控制|页面 解决WEB页面上"焦点控制"一法 对于B/S的系统,在页面控制上不如C/S系统那么控制灵活,就如输入的焦点问题,客户都很想通过键盘对数据进行录入,这样的要求我想100个客户中会有90个吧. 因此解决焦点获取问题是必要的.大家可以从网上找到一些方法,不过都比较麻烦,我现在介绍一种很方便的.效果也很不错的方法给大家. 我前段时间看了MS的ASP.NET讲座,在里面谈到了如何让"回车键"使文本框的焦点一个个下移.其中提了三种方法,最好的一种是这样

jQuery焦点控制图层展示延迟隐藏的方法

 这篇文章主要介绍了jQuery焦点控制图层展示延迟隐藏的方法,实例分析了jQuery操作图层的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了jQuery焦点控制图层展示延迟隐藏的方法.分享给大家供大家参考.具体实现方法如下:   代码如下: <!doctype html> <html> <head> <meta http-equiv="Content-Type" content="text/html;cha

代码-如何使用mediaId来播放微信语音?着急,在线等。。。。

问题描述 如何使用mediaId来播放微信语音?着急,在线等.... 微信JSSDK的wx.config配置好了,wx.ready也能通过,当我点击按钮的时候播放微信语音,如何实现?目前代码是: //通过ready接口处理成功验证 wx.ready(function (){ alert(123); }); function getVoice(mediaId){ alert(""播放语音""); wx.downloadVoice({ serverId: 'mediaI

xmlworkhelper pdf-XMLWorkHelper将html转换成pdf的时候,有分页,错行怎么处理?求各位大神解决下,着急

问题描述 XMLWorkHelper将html转换成pdf的时候,有分页,错行怎么处理?求各位大神解决下,着急 包如下:import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream; import com.itex

小学渣求一个学生信息管理系统的毕业设计 真的着急 求网管别删

问题描述 小学渣求一个学生信息管理系统的毕业设计 真的着急 求网管别删 毕业设计可以是php.html其他的都可以 只要能教我调试就ok学生登录教师登录增删改查的基本操作这些 求求你们了 我是真的想要你们帮帮我 解决方案 网管这几天不上班,等上班了肯定删..网上有很多现成的,直接去找把.... 解决方案二: 按照CSDN的code肯定得删. 你把自己的设计和代码发上来,请大神们指教,他们就会好好看的. 反正你是需要帮助调试的啊~ 那就简单了.

char-ORACLE 这语句的错问题,求指点,在线等、、着急ING

问题描述 ORACLE 这语句的错问题,求指点,在线等..着急ING select to_char(hiredate''MM) from (select deptnoMAX(sal) from emp group by deptno having deptno = 10);其中,hiredate为日期字段,sal为工资,deptno为部门号,求大神指点哪里出了错误,在线等,急!!!!!!!!!!! 解决方案 select hdmax(sal) from(select to_char(hireda