• 大小: 235KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C/C++
  • 标签: 截屏  

资源简介

之前发的代码,刚测试出现问题,修改后,重发一次。 包含全屏+自定义截屏,用的相同代码,参数不同。

资源截图

代码片段和文件信息

// CoverDlg.cpp : 实现文件
//

#include “stdafx.h“
#include “ScreenCapture.h“
#include “CoverDlg.h“
#include “afxdialogex.h“



// CoverDlg 对话框

IMPLEMENT_DYNAMIC(CoverDlg CDialogEx)

CoverDlg::CoverDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_DIALOG_COVER pParent)
{

}

CoverDlg::~CoverDlg()
{
}

void CoverDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CoverDlg CDialogEx)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_TIMER()
ON_WM_RBUTTONUP()
END_MESSAGE_MAP()


// CoverDlg 消息处理程序


void CoverDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
   // TODO: 在此处添加消息处理程序代码
   // 不为绘图消息调用 CDialogEx::OnPaint()
   //绘制背景  
CRect rect;
GetClientRect(&rect);
CBrush bruDB(GetSysColor(COLOR_3DFACE));//背景颜色  
dc.FillRect(&rect &bruDB);

//绘制拖动矩形  
if (IsLBtnDown)
{
CPen pen(PS_SOLID 6 RGB(234 23 53));
CPen *pOldPen = dc.Selectobject(&pen);
CBrush *pBrush = CBrush::FromHandle((HBRUSH)
GetStockobject(NULL_BRUSH));
CBrush *pOldBrush = dc.Selectobject(pBrush);
dc.Rectangle(CRect(startPoint endPoint));
dc.Selectobject(pOldPen);
dc.Selectobject(pOldBrush);
}
}


void CoverDlg::OnLButtonDown(UINT nFlags CPoint point)
{
//鼠标左键按下的响应函数 
startPoint = point;
endPoint = point;
IsLBtnDown = true;
esc = true;
CDialogEx::OnLButtonDown(nFlags point);
}


void CoverDlg::OnLButtonUp(UINT nFlags CPoint point)
{
// 鼠标左键弹起的响应函数 
endPoint = point;
IsLBtnDown = false;
IsLBtnUp = true;
CDialogEx::OnLButtonUp(nFlags point);
}


void CoverDlg::onmousemove(UINT nFlags CPoint point)
{
// 鼠标移动的响应函数   
endPoint = point;
CDialogEx::onmousemove(nFlags point);
}


void CoverDlg::OnTimer(UINT_PTR nIDEvent)
{
// 计时器函数   
if (nIDEvent == 1)
{
// 如果鼠标左键弹起,则关闭对话框
if (IsLBtnUp)
{
SendMessage(WM_CLOSE);
KillTimer(1);
}

// 如果鼠标右键弹起(用户取消了截图),关闭对话框
if (IsRBtnUp)
{
SendMessage(WM_CLOSE);
KillTimer(1);
}

Invalidate(FALSE);//更新界面  
}
CDialogEx::OnTimer(nIDEvent);
}


void CoverDlg::OnRButtonUp(UINT nFlags CPoint point)
{
// 鼠标右键弹起的响应函数 
IsRBtnUp = true;
esc = false;
CDialogEx::OnRButtonUp(nFlags point);
}


BOOL CoverDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();

// TODO:  在此添加额外的初始化
// 变量初始化
IsLBtnUp = false;
IsLBtnDown = false;
IsRBtnUp = false;
esc = false;
ShowWindow(SW_MAXIMIZE);  // 窗口最大化
SetWindowPos(&wndTopMost 0 0 0 0 SWP_NOMOVE | SWP_NOSIZE); // 窗口置顶

// 设置窗体透明
COLORREF maskColor = GetSysColor(COLOR_3DFACE); // 获取窗体颜色
SetWindowLong(GetSafeHwnd() GWL_EXstyle GetWindowLong(GetSafeHwnd() GWL_EXstyle) | 0x00080000);
HINSTANCE hInst = LoadLibrary(_T(“User32.dll“));
if (hInst)
{
typedef BOOL(WINAPI *MyFun)(HWND COLORREF BYTE DWORD);
MyFun myfun = NULL;
myfun = (MyFun)GetProcAddress(hInst “Se

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2017-05-11 13:01  ScreenCapture\
     目录           0  2017-05-11 13:02  ScreenCapture\Debug\
     文件      224768  2017-05-11 12:32  ScreenCapture\Debug\ScreenCapture.exe
     目录           0  2017-05-11 13:01  ScreenCapture\ScreenCapture\
     文件        1321  2017-05-02 00:28  ScreenCapture\ScreenCapture.sln
     文件       31744  2017-05-09 23:52  ScreenCapture\ScreenCapture.v12.suo
     文件        3798  2017-05-02 00:28  ScreenCapture\ScreenCapture\CoverDlg.cpp
     文件        1058  2017-05-02 00:30  ScreenCapture\ScreenCapture\CoverDlg.h
     目录           0  2017-05-02 00:11  ScreenCapture\ScreenCapture\res\
     文件         631  2017-05-02 00:25  ScreenCapture\ScreenCapture\resource.h
     文件       67777  2017-04-08 13:21  ScreenCapture\ScreenCapture\res\ScreenCapture.ico
     文件         682  2017-05-02 00:11  ScreenCapture\ScreenCapture\res\ScreenCapture.rc2
     文件        1878  2017-05-01 21:50  ScreenCapture\ScreenCapture\SC.cpp
     文件          54  2017-05-01 22:30  ScreenCapture\ScreenCapture\SC.h
     文件      108396  2017-05-02 00:28  ScreenCapture\ScreenCapture\ScreenCapture.aps
     文件        2562  2017-05-02 00:11  ScreenCapture\ScreenCapture\ScreenCapture.cpp
     文件         487  2017-05-02 00:11  ScreenCapture\ScreenCapture\ScreenCapture.h
     文件        9968  2017-05-02 00:28  ScreenCapture\ScreenCapture\ScreenCapture.rc
     文件       10831  2017-05-10 23:40  ScreenCapture\ScreenCapture\ScreenCapture.vcxproj
     文件        2449  2017-05-02 00:28  ScreenCapture\ScreenCapture\ScreenCapture.vcxproj.filters
     文件         236  2017-05-02 00:19  ScreenCapture\ScreenCapture\ScreenCapture.vcxproj.user
     文件        6552  2017-05-11 12:56  ScreenCapture\ScreenCapture\ScreenCaptureDlg.cpp
     文件         750  2017-05-11 11:45  ScreenCapture\ScreenCapture\ScreenCaptureDlg.h
     文件         146  2017-05-02 00:11  ScreenCapture\ScreenCapture\stdafx.cpp
     文件        1578  2017-05-02 00:11  ScreenCapture\ScreenCapture\stdafx.h
     文件         240  2017-05-02 00:11  ScreenCapture\ScreenCapture\targetver.h

评论

共有 条评论