| 网站首页 | 文章中心 | 电子书下载 | 矢量图库 | 视频教程 | 素材下载 | 程序代码下载 | JS代码 | 论坛 | 
常用软件类:
|杀毒安全 |联络聊天 |网络软件 |多媒体类 |系统工具 |图形图像 |系统工具 |应用软件 |行业软件
开发设计类:
|动画制作 |图像处理 |3D设计 |操作系统 |站长学院 |网络相关 |WEB设计 |数据库类 |程序开发
Visual C++设计屏幕抓图程序
作者:佚名    文章来源:网络    点击数:    更新时间:2006-12-15
 



  抓图程序是一个基于对话框的程序,它在建立对话框的时候调用前面的DLL,登记热键,因此需要将hook.lib添加到工程里,在程序里给出两个DLL函数的定义,也可以写个头文件,再包含进来以下代码:
BOOL __declspec(dllexport)__stdcall AddHotkey(HWND,UCHAR key,UCHAR mask);
BOOL __declspec(dllexport)__stdcall DeleteHotkey(HWND,UCHAR key,UCHAR mask);

  为了添加应用程序对热键通知事件的响应,程序中用的办法是重载WindowProc()函数,该函数代码如下:

LRESULT CCaptureDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
 if(message==WM_HOTKEY&&lParam==WM_KEYDOWN)
 { //lParam表示是按下还是松开,如果有多个热键,由wParam来区分
  SaveBmp();
  return FALSE;
 }
 …… //其它处理及默认处理


  将屏幕图像保存到BMP文件中的任务是由函数SaveBmp()来完成的,具体实现参见代码部分。另外为了顺利实现屏幕抓图,程序中还实现了"托盘"功能,由于这一部分本书在实例中已经专门介绍过了,所以不再赘述,读者朋友可以参考相关实例。

  最后需要提醒读者朋友们注意的是,源程序的编译与使用时要先编译hook.dll并将其放在系统目录(win2000/NT是system32,98/ME是system),然后编译对话框程序运行即可。

  二、编程步骤

  1、 启动Visual C++,生成一个DLL项目和一个基于对话框的应用程序项目,并将两个项目分别命名为"Hook"和"Capture";

  2、 在"Hook"项目中导出AddHotkey()、DeleteHotkey()函数;

  3、 在"Capture"项目中按照图一所示设置对话框的界面,具体设置参见代码部分;

  4、 使用Class Wizard在"Capture"项目中添加按钮的鼠标单击消息响应函数,并重载对话框的WindowProc()函数;

  5、 添加代码,编译运行程序。

上一页  [1] [2] [3] 下一页


  • 上一篇文章:

  • 下一篇文章: 没有了
  • 相关文章