VB 如何实现DX\GDI 技术截屏?

来源:百度知道 编辑:UC知道 时间:2024/09/26 14:21:23
不要用API函数那的种!最好有代码!谢谢!
有些用PNG图片作的程序界面,用API函数 无法截取窗口图片!听说用DX 或 GDI技术 能截取,不知如何操作?也不一定全不用API 只要能把PNG图片作的界面截取就可以!主要的还是DX 或 GDI技术!谢谢!

这需要参考一下微软的Direct SDK

汗了,不用API,你怎么调DX?……肯定要用API了。

没有API,就象是巧妇难为无米之炊啊~~~~

屏幕抓图至少分为3个步骤:

(1) 启用鼠标指针捕获。

(2) 在鼠标指针所在处的窗口进行绘图,提示抓图的目标。

(3) 选定目标窗口时,将目标窗口的画面保存为自定义的位图并终止鼠标指针捕获。

以下是具体的编程步骤:

(1)在Visual C++ .NET中按照GDI+程序的框架新建一个基于对话框的项目ScreenCapture,然后准备好一个外形为相机的光标文件(*.cur),将之引入资源管理器(IDC_CAMERA)。接着在CScreenCaptureDlg类中加入以下两个全局变量:

HWND hwndCapture;

Crect rectCapture;

(2)通过类向导加入对WM_MOUSEMOVE及WM_LBUTTONUP事件的响应函数,分别如下所示。

void CScreenCaptureDlg::OnMouseMove(UINT nFlags, CPoint point)

{

//如果用户按隹鼠标左键不放,则开始抓取图片

if(nFlags==MK_LBUTTON){

//隐藏程序窗口,以免影响在抓取时的“视野”

ShowWindow(SW_HIDE);

//载入“照相机”鼠标指针,开始追踪鼠标指针的移动

HCURSOR cur=LoadCursor(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDC_CAMERA));

SetCursor(cur);

SetCapture();

//获得鼠标指针所在窗口的句柄

this->ClientToScreen(