07 2016 档案
摘要:一、MFC文件的操作 1.相关类 CFile - 文件操作类,封装了关于硬盘文件读写操作的API函数,父类CObject CFileFind - 文件查找类,封装了关于文件遍历操作的API函数 2.CFile类的使用 2.1文件内容读写 (1)创建或打开硬盘文件,CFile::Open (2)读写文
阅读全文
摘要:一、MFC绘图 1.相关问题 WIN32 - HDC MFC - CDC类对象 2.相关类 (1)CDC类 - 父类CObject,封装了关于绘图的各种API函数,还封装了成员变量m_hDC(保存绘图设备句柄) (2)CDC类的子类 CClientDC - 封装了在客户区中绘图的绘图设备,::Get
阅读全文
摘要:一、多文档视图构架程序 1.相关问题 可以同时管理多个文档(可以有多个文档类对象) 2.相关类 CWinApp / CDocument / CView / CMIDChildWnd / CMIDFrameWnd CDocTemplate CMultiDocTemplate - 多文档模板类 CDoc
阅读全文
摘要:一、单文档视图构架程序 1.相关问题 只能管理一个文档(只有一个文档类对象) 2.相关类 CWinApp / CFrameWnd / CView / CDocument CDocTemplate - 文档模板类 CSingleDocTemplate - 当文档模板类 CDocManager - 文档
阅读全文
摘要:一、切分窗口 1.切分窗口分类 静态切分 - 在窗口创建出来的时候就已经完成切分 动态切分 - 在程序执行过程中根据用户的需要实时完成切分,最多只能切出2*2个(最多2行2列) 2.相关类 CSplitterWnd - 父类CFrameWnd(只有一个客户区的窗口叫规则框架窗口),封装了关于不规则窗
阅读全文
摘要:一、MFC的视图窗口 1.相关问题 视图窗口:提供了一个用于显示数据的窗口,并和用户进行交互操作 2.相关的类 CView及其子类 - 父类CWnd,封装了关于视图窗口的操作 3.视图窗口的使用 (1)从CView类派生一个自己的视图类(CMyView),并必须重写父类的纯虚函数OnDraw 当CV
阅读全文
摘要:一、MFC菜单 1.相关问题 WIN32 - HMENU 代表一个菜单 MFC - CMenu 类的对象代表一个菜单 2.相关类 CMenu - 封装了关于菜单操作的各种API函数,还封装了一个非常重要的变成m_hMenu(保存了菜单句柄) 3.菜单的使用 (1)添加菜单资源 (2)设置菜单方法 a
阅读全文
摘要:一、消息映射机制 1.消息映射机制的使用 (1)类必须派生自CCmdTarget (2)类内必须添加声明宏:DECLARE_MESSAGE_MAP( ) (3)类外必须添加实现宏:BEGIN_MESSAGE_MAP( theClass, baseClass ) END_MESSAGE_MAP( )
阅读全文
摘要:一、窗口的创建 1.加载菜单 2.调用CreateEx函数,设计并注册窗口类,创建窗口 (1)调用PreCreateWindow函数,设计窗口并调用win32API函数::RegisterClass注册窗口类 (2)调用AfxHookWindowCreate函数 利用win32API函数GetWin
阅读全文
摘要:一、MFC的概念和作用 1.什么是MFC? 全称为Microsoft Fundation Class Library我们称之为微软基础类库 (1)从硬盘的存在形式来说MFC就是一个库(静态库) (2)从原理上来说MFC还是一个程序框架 2.为什么使用MFC? 基于框架编程提高工作效率,减少开发周期,
阅读全文
摘要:1.windows线程 windows线程是可以执行的代码的实例。系统以线程为单位调度程序。 一个程序中可以有多个线程,实现多任务处理。 2.windows线程的特点 (1)线程都有一个ID (2)线程具有自己的安全属性 (3)每个线程都有自己的内存栈 (4)每个线程都有自己的寄存器信息 3.进程多
阅读全文
摘要:1.windows进程 进程是一个容器,包含程序执行需要的代码、数据、资源等信息。windows是多任务操作系统,可以同时执行多个进程。 windows进程特点: (1)每个进程都有自己的ID (2)每个进程都有自己的地址空间,进程之间无法访问对方的地址空间 (3)每个进程都有自己的安全属性 (4)
阅读全文
摘要:1.windows内存地址空间 (1)地址空间 程序中可以寻址的最大范围,对于32操作系统,地址空间的范围为0-4G(2^32),地址空间越大,相对程序的编写就会容易。 (2)地址空间的划分 a.用户地址空间:0-2G(0-7FFFFFFF) 存放用户的程序和数据。用户空间的代码是不能访问内核空间的
阅读全文
摘要:windows文件 1.创建或打开文件 HANDLE CreateFile( LPCTSTR lpFileName, //文件名称 DWORD dwDesiredAccess, //访问权限 DWORD dwShareMode, //共享方式 LPSECURITY_ATTRIBUTES lpSecu
阅读全文
摘要:1.动态库中的类 (1)DLL中类的导出 在类名称前添加 _declspec(dllexport),例如: class _declspec(dllexport) CMath{ ... }; 通常使用预编译开关切换类的导入导出定义,例如: #ifdef DLLCLASS_EXPORT #define
阅读全文
摘要:1.动态库程序 (1)动态库特点 运行时独立存在 不会链接到执行程序 使用时加载(使动态库程序运行) (2)与静态库的比较 由于静态库是将代码嵌入到使用程序中,多个程序使用时,会有多份代码,所以代码的体积会增大。 动态库的代码只需要存在一份,其他程序通过函数地址使用,代码体积小。 静态库发生变化后,
阅读全文
摘要:1.分类 (1)静态库程序 运行时不存在,会被链接到可执行文件或动态库中,目标程序的归档。 文件扩展名:LIB (2)动态库程序: 运行时独立存在,不会被链接到可执行文件或其他动态库中。 文件扩展名:DLL 2.静态库程序 (1)特点 运行时不存在 链接到可自行文件或者动态库中 目标程序的归档 3.
阅读全文
摘要:1.编辑框 (1)相关信息 从风格可以将编辑框分成几类: 单行编辑框 - 只能处理一行文字 多行编辑框 - 可以显示多行文字 密码编辑框 - 密码输入ES_PASSWORD (2)使用 a.创建 窗口类名称 - EDIT b.窗口消息 设置编辑框的文本内容 WM_SETTEXT:wPARAM - 不
阅读全文
摘要:1.控件 系统已经定义窗口类型,相应窗口的处理函数等都已经由系统定义完成。例如编辑框、按钮等。 2.控件创建 不需要注册,直接使用CreateWindow/Ex创建该类窗口。 控件创建时,每个控件都具有一个ID。 3.控件消息 程序和控件之间的交互都是用过消息完成的。 控件的窗口消息: 我们想获取控
阅读全文
摘要:1.对话框分类 (1)模式对话框 当对话框显示时,会禁止本进程其他窗口的输入等用户交互操作 (2)无模式对话框 在对话框显示时,本进程其他窗口同样可以接受输入等用户交互操作 2.模式对话框基本使用 (1)对话框窗口处理函数(并非真正的对话框处理函数,缺省处理函数会调用自定义的处理函数) INT CA
阅读全文
摘要:1.文字的绘制 TextOut - 将文字绘制在指定坐标位置 int DrawText( HDC hDC, //DC句柄 LPCTSTR lpString, //字符串 int nCount, //字符个数 LPRECT lpRect, //绘制文字的矩形区域 UINT uFormat); //绘制
阅读全文
摘要:1.坐标系分类 (1)设备坐标系 - 以像素为单位,以设备左上角为原点,X向右为正,Y向下为正的坐标系 屏幕坐标系:以当前屏幕左上角为原点的坐标系 窗口坐标系:以窗口左上角为原点的坐标系 客户区坐标系:以窗口的客户区左上角为原点的坐标系 (2)逻辑坐标系 在GDI绘图中,都是使用逻辑坐标系绘图,逻辑
阅读全文
摘要:1.GDI绘图对象 - 画笔 (1)作用 线的颜色、线型、线粗 (2)使用 a.创建句柄 HPEN CreatePen( int fnPenStyle, //画笔的样式 int nWidth, //画笔的粗细 COLORREF crColor); //画笔的颜色 成功,返回画笔句柄 画笔样式:PS_
阅读全文