桌面破坏王开发学习笔记总结
目录
1.GetSystemMetrics()
2.MoveWindow()
3.TextOutW()
4.C++11->Function类模板
6.CreatDC()
7.CreateCompatibleDC()
8.GetDeviceCaps()
9.HBITMAP,BITMAP, CBITMAP区别
10.CreateCompatibleBitmap()
11.SelectObject()
12.BitBlt()()
13.C++智能指针(shared_ptr和unique_ptr)
()1313
1.GetSystemMetrics()
作用功能:GetSystemMetrics函数可以获取系统分辨率,但这只是其功能之一,GetSystemMetrics函数只有一个参数,称之为「索引」,这个索引有75个标识符,通过设置不同的标识符就可以获取系统分辨率、窗体显示区域的宽度和高度、滚动条的宽度和高度。
详解看转载:https://www.cnblogs.com/suanec/p/3895239.html
2.MoveWindow()
作用功能:更改指定窗口的位置和尺寸。对于顶级窗口,位置和尺寸是相对于屏幕左上角的。对于子窗口,它们相对于父窗口工作区的左上角。
详解链接:MoveWindow function (winuser.h) - Win32 apps | Microsoft Docs
3.TextOutW()
作用功能:TextOut函数使用当前选择的字体、背景颜色和文本颜色在指定位置写入字符串。
函数参数:BOOL GetClientRect( HWND hWnd, LPRECT lpRect );
参数解释: LPRECT是指向接收客户端坐标的 RECT结构的指针。左侧和顶部成员为零。右侧和底部成员包含窗口的宽度和高度。
4.Function类模板
作用功能:function是一个通用的多态函数包装器。可以存储,复制和调用任何可调用的目标 :包括函数,lambda表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。
可调用内容:
- 调用普通函数
- 调用函数对象
- 调用模板函数对象
- 调用Lambda表达式
- 调用类静态成员函数
- 调用类成员函数
- 调用类公有数据成员
- 通过bind函数调用类成员函数
作用功能:只能显示转换,不能隐示转换。在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即被explicit关键字修饰的类构造函数,不能进行自动地隐式类型转换,只能显式地进行类型转换。注意:只有一个参数的构造函数,或者构造函数有n个参数,但有n-1个参数提供了默认值,这样的情况才能进行类型转换。
详解链接:https://www.cnblogs.com/gklovexixi/p/5622681.html
6.CreatDC()
作用功能:CreateDC函数使用指定名称为设备创建设备上下文 (DC)。
解释DC:DC : Device Context;中文名字->设备上下文,又称:设备描述表、设备环境
那么他是个什么东西呢?
设备上下文是一种 Windows 数据结构,其中包含有关设备(如显示器或打印机)的绘图属性的信息。所有绘图调用都通过设备上下文对象进行,该对象封装用于绘制线条、形状和文本的 Windows API。设备上下文允许在 Windows 中与设备无关的绘图。设备上下文可用于绘制到屏幕、打印机或元文件。
windows提供的,操作物理设备(显示屏,打印机)的接口。windows提供设备描述表,用于应用程序和物理设备之间进行交互,从而提供了应用程序设计的平台无关性。设备描述表是一种数据结构,它包括了一个设备(如显示器和打印机)的绘制属性相关的信息。所有的绘制操作通过设备描述表进行。设备描述表与大多 WIN32结构不同,应用程序不能直接访问设备描述表,只能由各种相关API函数通过设备描述表的句柄间接访问该结构。
CPaintDC对象封装 Windows 的常见习惯用法,调用函数,然后在设备上下文中绘图,然后调用函数。构造函数调用您,析构函数调用 。简化的过程是创建CDC对象、绘制,然后销毁该对象。在框架中,甚至此过程大部分都是自动化的。特别是,函数传递一个已准备好的 (通过 ),您只需将函数绘制到函数中。它由框架销毁,基础设备上下文在从调用函数返回时释放到 Windows。BeginPaint
EndPaint
CPaintDC
BeginPaint
EndPaint
CDC
OnDraw
CPaintDC
OnPrepareDC
OnDraw
CClientDC对象封装了仅表示窗口工作区的设备上下文。构造函数调用函数,析构函数调用函数。CWindowDC对象封装表示整个窗口(包括其帧)的设备上下文。CClientDC
GetDC
ReleaseDC
CMetaFileDC对象将绘图封装到 Windows 元文件中。与 传递给 的相反,在这种情况下,您必须自己调用OnPrepareDC,CPaintDCOnDraw
7.CreateCompatibleDC()
作用功能:CreateCompcompcompibleDC函数创建与指定设备兼容的内存设备上下文 (DC)。
8.GetDeviceCaps()
功能作用:获得指定设备的性能信息
GetDeviceCaps函数可以访问使用设备描述表的设备数据,应用程序指定相应设备描述表的句柄和说明该函数访问数据类型的索引来访问这些数据。
函数参数:GetDeviceCaps(hdc,nlndex)
参数解释:
hdc意思->要查询其设备的信息的设备场景
nIndex意思->根据GetDeviceCaps索引表所示常数确定返回信息的类型
一些nIndex:
HORZSIZE:物理屏幕的宽度(毫米);VERTSIZE:物理屏幕的高度(毫米);HORZRES:屏幕的宽度(像素);
VERTRES:屏幕的高度(光栅线);
更多参考链接:GetDeviceCaps_百度百科 (baidu.com)
9.HBITMAP,BITMAP, CBITMAP区别
HBITMAP是Windows中使用的位图句柄
BITMAP是C++中定义的位图结构体
CBitmap是MFC封装的位图类
10.CreateCompatibleBitmap()
作用功能:CreateCompcompibleBitmap函数创建与指定设备上下文关联的设备兼容的位图。
函数参数:HBITMAP CreateCompatibleBitmap( HDC hdc, int cx, int cy);
11.SelectObject()
作用功能:SelectObject 函数在指定的设备上下文 (DC) 中选择对象。新对象将替换同一类型的上一个对象。
函数参数:HGDIOBJ SelectObject(HDC hdc, HGDIOBJ h);
12.BitBlt()
作用功能:BitBlt函数执行与指定源设备上下文的像素矩形对应的颜色数据的位块传输到目标设备上下文。
函数参数:BOOL BitBlt( HDC hdc, int x, int y, int cx, int cy, HDC hdcSrc, int x1, int y1, DWORD rop );
13.C++智能指针(shared_ptr和unique_ptr)
作用功能:简单来说有了智能指针意味着你的C++代码基中几乎就不应该出现delete了。