使用鼠标光标捕获屏幕截图
问题描述:
我已经使用以下代码在Windows上获取屏幕截图。使用鼠标光标捕获屏幕截图
hdcMem = CreateCompatibleDC (hdc) ;
int cx = GetDeviceCaps (hdc, HORZRES);
int cy = GetDeviceCaps (hdc, VERTRES);
HBITMAP hBitmap(NULL);
hBitmap = CreateCompatibleBitmap (hdc, cx, cy) ;
SelectObject (hdcMem, hBitmap) ;
BitBlt(hdcMem, 0, 0, cx, cy, hdc, 0, 0, SRCCOPY);
但是,鼠标光标不显示。
我怎么能得到光标?还是有一个图书馆可以做到这一点?
在此先感谢。
答
您的BitBlt后,你选择位图背出hdcMem之前,你可以这样做:
上面的代码计算出如果光标显示,使用全局光标状态,因为你可能会在另一个进程中截取一个窗口(或多个窗口)。然后它从屏幕获取目标窗口坐标进行调整。它获取有关光标的具体信息,包括其热点。它计算图标的绘制位置。最后,它得到光标图标的实际大小,以便它可以在没有任何拉伸的情况下绘制它。
唯一的限制,以这种方法,我知道的是:
- 你没有得到光标的阴影,如果你有他们启用。
- 如果是动画光标,则只显示第一帧。据我所知,没有办法确定当前帧。
请问这有帮助吗? http://*.com/questions/918990/c-capture-the-mouse-cursor-image – 2009-10-27 05:37:39
太棒了!谢谢,这很好。 – KenC 2009-10-28 00:06:45