资源简介
之前发的代码,刚测试出现问题,修改后,重发一次。
包含全屏+自定义截屏,用的相同代码,参数不同。
代码片段和文件信息
// 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
- 上一篇:八数码问题C++代码
- 下一篇:C语言面试题附带答案解析
评论
共有 条评论