怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

Description of your first forum.

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子eelancy » 星期三, 2004年11月10日 18:39


我希望在我的程序中,按下“确定”按钮后,我的程序窗口最小化,鼠标在其他应用程序窗口点击后,获取其屏幕坐标,就象QQ的截图那样。用什么方法可以实现?
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子tt.t » 星期四, 2004年11月11日 08:54


setcapture
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子eelancy » 星期四, 2004年11月11日 13:37


那我怎么知道用户什么时候点了鼠标呢?因为是在另一个应用程序中,我不能使用onmousedown啊
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子暗月 » 星期四, 2004年11月11日 14:13


QQ的截图软件,你点的其实不是其他应用程序的窗口。

你其实点在QQ自己的程序上的。

他的操作方式,就是将当前的窗口内容,画到他自己的一个全屏的窗口,然后,爱怎么操作就怎么操作了。
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子tt.t » 星期四, 2004年11月11日 15:58


仅仅要知道在哪里点了鼠标很好办,直接用onmousedown就行
但若要求鼠标圈一个范围则用setcapture不行。
可以用暗月,的方法
也可以建立一全屏透明topmost窗体(2k以上系统),在其上操作。
好处是,抓图选取范围时不会影响屏幕更新。
如屏幕上有一gif动画,想抓取某一侦,则只需预先圈定好范围,待那一侦出现时在抓取,
而暗月,的方法则不会这么灵活
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子暗月 » 星期四, 2004年11月11日 21:56


我说的方法是QQ现在用的方法。。。
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子eelancy » 星期五, 2004年11月12日 10:52


明白了,关键都是创建一个透明的窗体,这样才能接收到鼠标点击的消息,是这样的吗?
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子tresss » 星期一, 2004年11月15日 14:45


暗月说的方法对,很多抓图软件都是这样实现的!
 
 
 

怎么检测鼠标在另一个程序窗口的点击(象截图软件那样)?

帖子abookdog » 星期日, 2005年1月9日 13:53


方法:
1、按下“确定”按钮,自身程序窗口最小化,同时创建一个透明的顶层窗口。
2、在该透明的顶层窗口里相应鼠标事件。
3、在圈选过程中用异或方法画圈选框,重圈时用异或方式擦除原圈选框,同时在新选区域异或重画圈选框。
4、在圈选框上双击时表示选中,此时进行DC方面的操作将该远中区域的图截下来,按一定格式贮存。