本帖最后由 zicerock123 于 2013-02-16 14:25:35 编辑

解决方案 »

  1.   

    HWND hWnd = FindWindow(NULL,"其它窗体名称"); //获得窗口的句柄HWND hWndChild =::GetWindow(hWnd,GW_CHILD); while(hwndChild)
    {
       
        //判断hwndChild是否是你要的窗口
        if(Is your window)
        {
            PrintWindow(hWndChild, hdcMem, 0); 
            break;
        }
         hWndChild=::GetWindow(hWndChild,GW_HWNDNEXT);
    }先找到窗口里的控件句柄,试一下看能不能取代你说的死方法。
      

  2.   

    就是这个“PrintWindow(hWndChild, hdcMem, 0)”截取不了控件界面啊,因为控件在窗口的位置是固定的,我通过getchildwindowfrompoint也可以曲到控件句柄,但PrintWindow打印不出界面,传递窗口的句柄倒可以把整个窗口打印出来
      

  3.   

    不是所有控件都 支持 PrintWindow
      

  4.   

    spy4win7这个软件有个图像截取功能,只要是能获取到句柄的界面都可以截取下来,有没有哪位大虾知道用的是什么方法,给作者发了封邮件也没收到回复?
      

  5.   

    PrintWindow()传递top-Window的HWND,然后根据子窗口的区域,用BitBlt裁剪出来应该可以的吧