posts - 131, comments - 12, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

截图功能(c++)

Posted on 2012-10-16 09:45 盛胜 阅读(476) 评论(0)  编辑 收藏 引用
来源:http://topic.csdn.net/u/20080228/14/8a514245-266e-4c58-9626-4ddeb52f0d97.html
1.截屏
2.建立一个无边框的窗口,填充整个屏幕
3.将截屏内容贴到窗口中
4.处理鼠标键盘消息即可

BOOL BitBlt(
  HDC hdcDest, // handle to destination DC
  int nXDest, // x-coord of destination upper-left corner
  int nYDest, // y-coord of destination upper-left corner
  int nWidth, // width of destination rectangle
  int nHeight, // height of destination rectangle
  HDC hdcSrc, // handle to source DC
  int nXSrc, // x-coordinate of source upper-left corner
  int nYSrc, // y-coordinate of source upper-left corner
  DWORD dwRop // raster operation code
);
这个函数截取一个矩形很方便
无非就是处理鼠标按下和弹起消息,记录下矩形框,调用BitBlt即可,当然效果好点还要动态绘制鼠标选中的矩形区域
提示:  
  HDC hDCForm, hdcScreen,hdcCompatible;
  HBITMAP hbmScreen;
  hDCForm=GetDC(Form1->Handle);
  hdcScreen = CreateDC("DISPLAY", NULL, NULL, NULL);
  hdcCompatible = CreateCompatibleDC(hdcScreen);
  hbmScreen = CreateCompatibleBitmap(hdcScreen,
  GetDeviceCaps(hdcScreen, HORZRES),
  GetDeviceCaps(hdcScreen, VERTRES));
  if(!SelectObject(hdcCompatible, hbmScreen))
  {
  ShowMessage("erro!");
  }
  BitBlt(hdcCompatible,  
  0,0,  
  800, 600,
  hdcScreen,  
  0,0,  
  SRCCOPY);

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理