资源简介
改代码实现了截图功能,任选桌面区域保存或复制到剪切板。
代码片段和文件信息
// CMAgnifyDlg.cpp : 实现文件
//
#include “stdafx.h“
#include “ScreenShotTool.h“
#include “CMAgnifyDlg.h“
// CCMAgnifyDlg 对话框
IMPLEMENT_DYNAMIC(CCMagnifyDlg CDialog)
CCMagnifyDlg::CCMagnifyDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCMagnifyDlg::IDD pParent)
{
m_nDestWidth = 0;
m_nDestHeight = 0;
}
CCMagnifyDlg::~CCMagnifyDlg()
{
}
void CCMagnifyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CCMagnifyDlg CDialog)
ON_WM_CLOSE()
ON_WM_ERASEBKGND()
ON_WM_PAINT()
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()
// CCMAgnifyDlg 消息处理程序
BOOL CCMagnifyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
InitScreen();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CCMagnifyDlg::OnClose()
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
PostQuitMessage(0);
CDialog::OnClose();
}
BOOL CCMagnifyDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return CDialog::OnEraseBkgnd(pDC);
}
BOOL CCMagnifyDlg::PreTranslateMessage(MSG* pMsg)
{
// 【这里截获esc消息,退出】
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_ESCAPE)
{
PostQuitMessage(0);
}
return CDialog::PreTranslateMessage(pMsg);
}
void CCMagnifyDlg::OnPaint()
{
CPaintDC dc(this);
DrawMagnify(dc);
}
//************************************
// Method: 初始化屏幕
// Author: WangJie
// DateTime: [7/20/2016]
//************************************
void CCMagnifyDlg::InitScreen()
{
m_nDestWidth = GetSystemMetrics(SM_CXSCREEN); // 【计算的屏幕宽度】
m_nDestHeight = GetSystemMetrics(SM_CYSCREEN); // 【计算的屏幕高度】
CWindowDC dc(GetDesktopWindow()); // 【以当前的桌面窗体创建一个DC】
m_DeskTopDC.CreateCompatibleDC(&dc); // 【创建一个兼容桌面窗体的dc并关联bitmap】
m_bmpDestTop.CreateCompatibleBitmap(&dc m_nDestWidth m_nDestHeight);
m_DeskTopDC.Selectobject(m_bmpDestTop); // 【将位图选到内存DC】
// 【按原来背景填充客户区,不然会是黑色】
m_DeskTopDC.BitBlt(0 0 m_nDestWidth m_nDestHeight &dc 0 0 SRCCOPY); // 【将窗口DC内容传到应用程序中的dc支持图形块的复制,速度很快】
SetWindowLong(GetSafeHwnd()GWL_EXstyleGetWindowLong(GetSafeHwnd()GWL_EXstyle)|WS_EX_layerED);
SetlayeredWindowAttributes(0255LWA_ALPHA);
}
//************************************
// Method: 画放大镜
// Author: WangJie
// DateTime: [7/20/2016]
//************************************
void CCMagnifyDlg::DrawMagnify(CDC& dc)
{
dc.BitBlt(00m_nDestWidthm_nDestHeight&m_DeskTopDC00SRCCOPY);
CPoint point;
GetCursorPos(&point);
this->GetWindowRect(m_rect);
ClientToScreen(&m_rect);
//放大绘制
dc.StretchBlt( 0 0 // 【目标区的起始坐标】
m_rect.Width() // 【目标区的长宽】
m_rect.Height() // 【目标区的长宽】
&m_DeskTopDC // 【桌面源dc】
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 541 2016-07-20 20:03 截图\截图\bin\ReadMe.txt
文件 204800 2016-07-20 20:34 截图\截图\bin\ScreenShotTool.exe
文件 15933 2016-07-20 19:38 截图\截图\doc\AlphaBlend透明.docx
文件 27776 2016-07-20 09:28 截图\截图\doc\MFC模态对话框和非模态对话框.docx
文件 15747 2016-07-20 19:40 截图\截图\doc\StretchBlt拉伸压缩位图拷贝.docx
文件 3981 2016-07-20 19:12 截图\截图\doc\画图.txt
文件 14222 2016-07-20 19:13 截图\截图\doc\获取桌面所有窗口.docx
文件 470 2016-07-20 19:12 截图\截图\doc\获取窗口句柄.txt
文件 908 2016-07-11 09:11 截图\截图\src\Backup\ScreenShotTool.sln
..A..H. 18944 2016-07-22 10:31 截图\截图\src\Backup\ScreenShotTool.v12.suo
文件 109576192 2019-01-14 16:35 截图\截图\src\ipch\screenshottool-84a86094\screenshottool-61ee7be2.ipch
文件 197632 2019-01-14 09:44 截图\截图\src\Release\ScreenShotTool.exe
文件 5565440 2019-01-14 09:44 截图\截图\src\Release\ScreenShotTool.pdb
文件 4610 2016-07-20 18:02 截图\截图\src\ScreenShotTool\CMagnifyDlg.cpp
文件 1095 2016-07-20 18:54 截图\截图\src\ScreenShotTool\CMagnifyDlg.h
文件 1412 2019-01-14 14:27 截图\截图\src\ScreenShotTool\CRectTrackerEx.cpp
文件 240 2019-01-14 10:57 截图\截图\src\ScreenShotTool\CRectTrackerEx.h
文件 2510 2016-07-20 17:45 截图\截图\src\ScreenShotTool\define.h
文件 4689 2019-01-14 11:33 截图\截图\src\ScreenShotTool\EnumAllWindowsRect.cpp
文件 759 2019-01-14 11:29 截图\截图\src\ScreenShotTool\EnumAllWindowsRect.h
文件 2995 2016-06-27 11:52 截图\截图\src\ScreenShotTool\ReadMe.txt
文件 5230 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\cl.command.1.tlog
文件 80364 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\CL.read.1.tlog
文件 3748 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\CL.write.1.tlog
文件 63543 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\CMagnifyDlg.obj
文件 15614 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\CRectTrackerEx.obj
文件 133051 2019-01-14 09:36 截图\截图\src\ScreenShotTool\Release\EnumAllWindowsRect.obj
文件 2 2019-01-14 09:44 截图\截图\src\ScreenShotTool\Release\li
文件 2 2019-01-14 09:44 截图\截图\src\ScreenShotTool\Release\li
文件 2606 2019-01-14 09:44 截图\截图\src\ScreenShotTool\Release\li
............此处省略87个文件信息
- 上一篇:用MFC写的部门换届投票程序
- 下一篇:c++ primer 第五版 英文版 pdf
相关资源
- c++ primer 第五版 英文版 pdf
- Visual C++ 2008程序设计完全自学教程精
- Visual C++开发实战1200例(第2卷).(配
- Dev-C++ 5.4.0 - 最新版
- VC++ USB及串口通信工程源码
- C++游戏编程入门 第4版
- Visual C++ 6.0完整绿色版
- Devc++ 5.6.1 绿色版
- SQLAPI++4.1.11 crack for vc++(全面破解版)
- C++程序设计教程王珊珊
- opencv c++相机标定程序 包含标定图像和
- 简单易用QR二维码生成源码 VC++2015 编
- 数字图像处理与机器视觉 visual C++与
- 五子棋C++源代码 单机 联机 人机对战
- 全景拼接c++代码
- C++多线程编程实战 姜佑译2018年最新
- Discovering Modern C++ 无水印pdf
- 深入理解C++11.pdf
- 自绘图软件MFC制作
- 操作系统八大调度算法c/c++实现
- c++语言opencv加socket实现远程桌面监控
- 深入理解C++11 (完整带书签版) pdf
- C++ Templates The Complete Guide 2nd Edition e
- C++GUI+Qt4编程中文(中文最新版)
- 常用算法程序集(C++语言描述)第四
- c++程序设计所有答案
-
Designing ob
ject-Oriented C++ Applications- - Effective C++中文版第三版 高清PDF带目录
- c++ how to program 10th 原文版
- cat021报文解析——C++语言实现
评论
共有 条评论