1、用C语言实现windows程序截图,太麻烦。建议用C++做比较好。
2、截图例程:
#ifndef CAPTUREBLT#define CAPTUREBLT 0x40000000
#endif
HBITMAP CaptureScreen(LPRECT lpRect)//lpRect为NULL时表示全屏幕截图
{
HDC hdc, hdcMem
HBITMAP hemfCopy
HWND hwndScr
int dstcx, dstcy
if(lpRect)
{
dstcx = lpRect->right - lpRect->left
dstcy = lpRect->bottom - lpRect->top
}
else
{
dstcx = GetSystemMetrics(SM_CXSCREEN)
dstcy = GetSystemMetrics(SM_CYSCREEN)
}
if (LockWindowUpdate(hwndScr = GetDesktopWindow ()))
{
hdc = GetDCEx (hwndScr, NULL, DCX_CACHE | DCX_LOCKWINDOWUPDATE)
hdcMem = CreateCompatibleDC (hdc)
if(NULL==hdcMem)
{
ReleaseDC (hwndScr, hdc)
LockWindowUpdate (NULL)
return NULL
}
hemfCopy = CreateCompatibleBitmap (hdc, abs(dstcx), abs(dstcy))
if(NULL==hemfCopy)
{
DeleteDC (hdcMem)
ReleaseDC (hwndScr, hdc)
LockWindowUpdate (NULL)
return NULL
}
SelectObject (hdcMem, hemfCopy)
if(lpRect)
StretchBlt (hdcMem, 0, 0, abs(dstcx), abs(dstcy),
hdc, lpRect->left, lpRect->top, dstcx, dstcy, SRCCOPY|CAPTUREBLT)
else
BitBlt (hdcMem, 0, 0, dstcx, dstcy,
hdc, 0, 0, SRCCOPY|CAPTUREBLT)
DeleteDC (hdcMem)
ReleaseDC (hwndScr, hdc)
LockWindowUpdate (NULL)
return hemfCopy
}
return NULL
}
按照 *** 作上从易到难的顺序,给你推荐五种截屏方式 :第一种:Ctrl+PrScrn使用这个组合键截屏,获得的是整个屏幕的图片;
第二种:Alt+PrScrn这个组合键截屏,获得的结果是当前窗口的图片;
(上面两种方法,然后在桌面点右键新建“图画”或“BMP图像”,粘贴即可;也可以在Photoshop中新建文件,粘贴即可。)
第三种:打开q q,使用快捷键Ctrl+Alt+A, 这样可以在屏幕上的任何地方截屏,右键选中截图“另存为…”,还可以在截屏图片上做一些简单的注释和处理;
第四种:在淘宝旺旺对话框中,有截图工具, *** 作方法类似Q Q截图;
第五种:使用专业的截屏软件。 推荐Snagit,专业软件的截屏效果更加强大,可识别和提取截图中的文字。
1 使用系统截屏功能。需要使用按键print screen.在键盘上印的是prt sc。
单独使用该键,会截整个屏幕,如果用alt+prt sc,则会截取当前窗口的部分。
截屏后,数据会报存在剪贴板中,这时可以打开系统画图工具,或者任意图形编辑工具,粘贴。即可得到截屏后的数据,保存成文件即可。如果需要裁剪,也可以在这类工具中 *** 作。
2 使用工具进行截屏。
目前提供快捷截屏的软件很多,比如qq,搜狗输入法,搜狗浏览器等都有截屏工具提供。
比如qq默认的截屏快捷键是ctrl+alt+a。同时按下三个键,会发现鼠标箭头变成彩色,这时点击并选择需要截屏的区域,双击即可完成截屏,将图片保存在内存中。
也可以在截屏后,直接保存成文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)