桌面破坏王开发学习笔记总结

目录

桌面破坏王开发学习笔记总结

1.GetSystemMetrics()

2.MoveWindow()

3.TextOutW()

4.C++11->Function类模板

5.C++中explicit关键字的使用

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表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针。

可调用内容:

  1. 调用普通函数
  2. 调用函数对象
  3. 调用模板函数对象
  4. 调用‎Lambda‎表达式
  5. 调用类静态成员函数
  6. 调用类成员函数
  7. 调用类公有数据成员
  8. 通过bind函数调用类成员函数

5.C++中explicit关键字的使用

作用功能:只能显示转换,不能隐示转换。在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。‎BeginPaintEndPaintCPaintDCBeginPaintEndPaintCDCOnDrawCPaintDCOnPrepareDCOnDraw

‎CClientDC‎‎对象封装了仅表示窗口工作区的设备上下文。构造函数调用函数,析构函数调用函数。‎‎CWindowDC‎‎对象封装表示整个窗口(包括其帧)的设备上下文。‎CClientDCGetDCReleaseDC

‎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了。

桌面破坏王游戏开发学习笔记总结相关推荐

  1. 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第二十一课:Cocos2D-X网格特效1-3

    [麦可网]Cocos2d-X跨平台游戏开发---学习笔记 第二十一课:Cocos2D-X网格特效1-3 ================================================ ...

  2. 【Unity3D游戏开发学习笔记】(六)上帝之手—GameObject的操作

    在Unity中,所有实体都属于游戏对象(GameObject),比如外部导入到场景中的模型,Unity自带的立方体等等,而要将这些GameOject进行管理,交互等操作,则需要用到脚本来实现,上一节我 ...

  3. golang游戏开发学习笔记-开发一个简单的2D游戏(基础篇)

    此文写在golang游戏开发学习笔记-创建一个能自由探索的3D世界之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里我们要创建一个简单的2D游戏场景以及配套的人物,并实现人物运动和碰撞检测功能 ...

  4. golang游戏开发学习笔记-创建一个能自由探索的3D世界

    此文写在golang游戏开发学习笔记-用golang画一个随时间变化颜色的正方形之后,感兴趣可以先去那篇文章了解一些基础知识,在这篇文章里,我们将创建一个非常简单(只有三个方块)但能自由探索的的3D世 ...

  5. 小狐狸横版游戏开发学习笔记(上)

    小狐狸横版游戏开发学习笔记(上) 目录 小狐狸横版游戏开发学习笔记(上) 1.关于如何创建Tilemap 2.关于地图格子之间出现间隙的问题 3.如何设置自己想要的控制按键 4.如何解决玩家移动过程中 ...

  6. 游戏开发学习笔记——lua脚本语言——安装、汉化与小测试(解决lua运行代码乱码问题)

    游戏开发学习笔记--lua脚本语言--安装.汉化与小测试 FOR THE SIGMA FOR THE GTINDER FOR THE ROBOMASTER 简介: Lua 是一种轻量小巧的脚本语言,用 ...

  7. 【Unity3D游戏开发学习笔记】(一)Unity3D初认识

    一.什么是Unity3D Unity是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏.建筑可视化.实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合 ...

  8. 【Unity3D游戏开发学习笔记】(七)上帝之眼—第三人称摄像机的简单实现(跟随视角,自由视角)

    陆陆续续又开始更新自己的博客,看来自我驱动能力还是不够啊= =,废话不多说了,之前的内容大概说了一下Unity的一些基础知识,接下来我们将要对一些基本功能做一些学习.大家都知道,一个游戏,少不了摄像机 ...

  9. Coursera 游戏开发学习笔记(week 2)

    游戏类型的划分 1.RPG游戏 在游戏中,玩家需要创建或者扮演一个虚拟的游戏角色.游戏包括完整的故事情节,并以推进的方式将剧情进行深度的演绎.故事情节. 游戏战斗. 角色升级. 装备收集.都是角色扮演 ...

最新文章

  1. linux系统开机静态分配ip地址
  2. 某电世界------青龙面板
  3. Mac git 终端使用
  4. python之命令行解析工具argparse
  5. ubuntu下面挂载mtp设备的目录位置
  6. git.exe init#timeout = 10错误:克隆远程repo'origin'时出错hudson.plugins.git
  7. Crypto.com宣布将在2021年1月19日下架XRP
  8. Vue调试工具 vue-devtools的安装
  9. 脚本程序gdb 脚本
  10. 设计模式--spring源码中使用策略模式(Strategy Pattern)
  11. SqlServer转换为Mysql(mss2sql)
  12. 信息系统项目管理师 pdf_关于系统集成项目管理工程师和信息系统项目管理师的区别...
  13. Hibernate源码解析
  14. 彻底理解confidence interval和credible interval
  15. FLOPS-定义每秒浮点运算次数
  16. uni-app中自定义图表(canvas实现chart图表)开发篇(5)-圆环进度条添加动画效果
  17. html字体的样式与行高
  18. 比较X^y 与 Y^x的大小
  19. Python中copy()和deepcopy()的区别
  20. cad2020安装1603错误_解决CAD安装过程中出现1603致命错误的方法

热门文章

  1. PZT-NI磁电复合薄膜|PZT/Pt/Si薄膜|直径为0.1mm
  2. dto 转换为Do 工具类
  3. 安装Visio 2013与原本的office冲突的最终解决方案
  4. 计算机网络学习笔记(二)——网络边缘
  5. 【揭秘】1024特企- 前端仔微信里都藏着什么
  6. Python问题:FileNotFoundError: [WinError 2] 系统找不到指定的文件。(已解决)
  7. 酷壳用的还是 Wordpress
  8. 计算机基础:今天一次把 Unicode 和 UTF-8 说清楚
  9. 金仓数据库 KingbaseGIS 使用手册(8.11. 栅格处理函数)
  10. arcgis图斑尖角检查_运用官方扩展模块高效检查图斑尖锐角(免费教程,不用插件)...