关于抓屏的问题。 通过HWND GetTopWindow( HWND hWnd // handle to parent window);得到桌面句柄再CREATE 一个MEMDC,再把上句柄的DC给BLT到MEMDC上,把这个MEMDC存成BMP。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HWND hwnd=GetForegroundWindow(); HDC hdc; hdc=GetDC(hwnd);找到程序的上下文然后 BitBlt( memoryDc, xStart, yStart, ptSize.x, ptSize.y, hdc,ptOrigin.x, ptOrigin.y, SRCCOPY); 就可以了 当然事先要给memoryDC一个合适大小的bitmap啦,HBITMAP hbitmap; hbitmap=CreateCompitableBitmap(hdc);old=SelectObject(hdc,hbitmap);...最后用GetBitmap返回图像的信息。 如何用VC抓取屏幕图象并压缩HBITMAP GetScreenBmp(){HWND hwnd = ::GetDesktopWindow();HDC hsrc = ::GetDC(hwnd);HDC hmemdc = ::CreateCompatibleDC(hsrc);RECT rc; ::GetWindowRect(hwnd,&rc);SIZE sz;sz.cx=rc.right-rc.left;sz.cy=rc.bottom-rc.top;HBITMAP hbmp = ::CreateCompatibleBitmap(hsrc,sz.cx,sz.cy);HGDIOBJ holdbmp = ::SelectObject(hmemdc,hbmp);::BitBlt(hmemdc,0,0,sz.cx,sz.cy,hsrc,rc.left,rc.top,SRCCOPY);::SelectObject(hmemdc,holdbmp);::DeleteObject(hmemdc);::ReleaseDC(hwnd,hsrc);return hbmp;} 关于list的奇怪问题 加急!vc中 如何用Mscomm发送十六进制的空字符(00)? 我想问一下QQ在待机后,会自动连接是怎么实现的啊 按钮(button)之间的数据传递 如何利用VC发送rtsp命令? vc2003上的程序在2005上怎么build 知道一个控件的hwnd,怎么找到它所在的对话框? 请问在VC中怎么样才能获取用户上网时的第一级网关IP地址(急,在线等....) 一个mfc程序,我想使用WSAAsyncSelect函数 如何偷取消息 请问将整数123转换成(char*)字符串“123”。 有谁知道哪里可以得到Vxd有关的文章,特别是有关IFSMGR和IOS的介绍 ?
HDC hdc;
hdc=GetDC(hwnd);
找到程序的上下文然后 BitBlt( memoryDc, xStart, yStart, ptSize.x, ptSize.y, hdc,ptOrigin.x, ptOrigin.y, SRCCOPY); 就可以了
old=SelectObject(hdc,hbitmap);
...
最后用GetBitmap返回图像的信息。
{
HWND hwnd = ::GetDesktopWindow();
HDC hsrc = ::GetDC(hwnd);
HDC hmemdc = ::CreateCompatibleDC(hsrc);
RECT rc; ::GetWindowRect(hwnd,&rc);
SIZE sz;sz.cx=rc.right-rc.left;sz.cy=rc.bottom-rc.top;
HBITMAP hbmp = ::CreateCompatibleBitmap(hsrc,sz.cx,sz.cy);
HGDIOBJ holdbmp = ::SelectObject(hmemdc,hbmp);
::BitBlt(hmemdc,0,0,sz.cx,sz.cy,hsrc,rc.left,rc.top,SRCCOPY);
::SelectObject(hmemdc,holdbmp);
::DeleteObject(hmemdc);
::ReleaseDC(hwnd,hsrc);
return hbmp;
}