相信大家都使用过2011版的QQ了吧,截图的时候,是无法自动获取QQ模板的外形的;
截图的时候,QQ应该是生成了一个图片界面的,但是它却能获取这个界面下面的窗体外形呢?
应该是使用windowfrompos API吧?

解决方案 »

  1.   

    谢谢绑顶;但是windowfrompos 只能获取最前面的窗体;如何过滤?
    前面的画板窗体,是我创建的;[别说隐藏或最小化哦~~]
    说到底就是 实现QQ截图的功能,获取窗体的外形
      

  2.   

      hwd:=Self.Handle;
      dwNewLong:=GetWindowLong(hwd,GWL_EXSTYLE);
      dwNewLong :=dwNewlong or WS_EX_TRANSPARENT  or WS_EX_LAYERED;
      SetWindowLong(hwd,   GWL_EXSTYLE,   dwNewLong);  //设置穿透功能  
    使用了下这个功能的话,能获取下面的窗体句柄,但是却本身无法获得鼠标点击功能;
    估计在消息方面,应该能突破?...请大虾米赐教
      

  3.   

    我记得有个api是enumwindow和enumchildwindow是用来遍历窗体的
    GetWindowRect是可以获得窗体区域的
      

  4.   

    实际上qq不需要获取点击事件,他只需要获取鼠标所在的窗体,和窗体的区域,然后区域取图或者抓取句柄所在的窗体即可,这个也是有api的,好像是printwindow什么的,老不用都忘记了,然后他自己截取鼠标点击事件,来生成图片即可
      

  5.   


    我也使用GetWindowRect的获取的;
    但是 你刚才说的 enumchildwindow 是指父窗体下的枚举子窗体吧;