分类: [科锐]

52_对话框与控件

作业讲解 Bitmap需要用LoadImage加载 TranslateMessage与DispatchMessage联用看需求 DrwaIcon大小通过GetSystemMetrics获取 发送消息 SendMessage:立即处理的消息 用法 定义一个消息宏,不能与系统消息一样 WM_USER宏:系统保留值大小 时机 直到窗口函数处理完消息才返回 创建窗口先进来一次发送了WM_CREATE消息 当断下来立即执行用户的自定义消息 阻塞消息,点了确定之后才进去用户操作消息循环中 PostMessage:排队处理的消息 时机 直接把消息投递到消息队列中,如果前面不处理,它没有机会处理 ......

51_资源和键盘消息

资源(菜单,快捷键,图标,光标)的使用 代码以外的东西称为资源 资源的存储方式 资源和代码分开的存储方式,好处就是好修改,缺点很容易被修改 资源和代码放在一起的,好处是不容易被修改,坏处是修改不方便 菜单 菜单由主菜单和菜单项和菜单项的子菜单组成,每点击一个菜单就会有相应 每一个菜单项有一个ID,通过ID区分,每个主菜单也有ID,通过ID区分 VS项目名添加资源Menu,修改完之后需要保存,属性修改默认ID. Checked属性:False能编辑子菜单 Enable属性:能否点击 Popup属性:改为True可以增加 ......

50_WM_PAINT消息

作业讲解 添加计数器,创建新窗口,计数器增加,关闭一个窗口,计数器减少 保存第一个窗口句柄,每次关闭的时候比较一下 关闭窗口资源释放时 当一个进程退出的时候,与这个进程有关的一切资源都被释放 背景颜色 WNDCLASS.hbrBackground = (HBRUSH)COLOR + 1; //规定要加1 关键消息 WM_PAINT:绘图消息,只告诉程序绘图的时机到了,绘什么图由程序员写 DrawText:相当于文本框里面插入文字 HDC hDC DC – Device context设备上下文,对于屏幕的抽象 BeginPaint:对指定的窗口进行绘制,获取窗口的DC,用完需要释放,不然一 ......

49_创建窗口

作业讲解 Z:zero P ZP STR,指针指向零结尾的字符串指针 ZZ:两个零结尾 NZ:不已零结尾的字符数组      2.MessageBox是C语言的名称粉碎规则,C++会出错,extern “C” {} 创建窗口的六要素 设计注册窗口类(非必须,是用系统预定义的窗口类) 窗口类创建出来的叫做窗口实例,一对多的关系 注册窗口类RegisterClass,指向WNDCLASS结构体 UNIT style 风格,宏常量按位存,为了组合方便 CS_DBLCLKS,当用户快速按两次表示有双击 CS_HREDRAW,当拖动窗口修改窗口尺寸的时候重新绘制窗口 CS_VREDRAW,当拖动窗口修改窗口尺寸的时候重 ......

48_SDK概念

Sdk课程安排 sdk 5-6节课入门原理 界面开发 Sdk是三阶段的基础,从逆向的角度来讲很重要,windows系统提供的最底层的接口 意义:不会vb,dephi,照样可以运行它们的程序 事件驱动,消息响应是一种设计思想 Windows sdk编程入门 API(application programming interface):应用程序编程接口,输入输出设备被操作系统接管了,通过应用程序来操作。系统不希望操作者知道它内部的结构具体定义 内核对象:操作系统的内部受保护,只能通过API来修改,如同二叉树提给给别人只能通过函数来修改,这种二叉树对象称为内核对象 用户和内核模 ......

47_一阶段项目

学生管理系统项目要求 功能 1. 完成 学生信息 的增删改查 学生ID 学生名 出生年月 性别 2. 发布的数据量 有100w学生 文件存储(及时的存储) 3. 变长字符串存储CMyString 4. 查询 通过ID, 通过名字,允许同名(查询时间复杂度:对数阶) 5. 不能使用三方的函数 stl… 要求 采用平衡二叉树的可靠管理 流程逻辑 代码 //studentManager.cpp #include "CControl.h" int main() { CControl *pControl = new CControl; pControl->start(); delete pControl; return 0; } //CControl.h #pragma once #incl ......

46_哈希表

混合数据结构 平衡二叉排序树 冲突不支持,但是不冲突的信息不一定记得住 如存在姓名和id查找,插入同一姓名的时候不知道插在哪里 可以结点里面挂一个单向链表,挂中间[][1][]         [][2][1][] 查找给迭代器 删除两个孩子的时候链表也要交换过去,析构的时候可以递归删除链表 相对平衡,avl变种 红黑树(红黑树),父节点是红色,孩子只能是黑色。每个根节点到叶子节点的高度都是一致 哈希表 平均时间复杂度(0(1))增加、删除、修改、查询 学号当数组下标 数组大小固定,后面挂链表,多于的模上数组大小,保证了平均 表大小要 ......

45_平衡排序树(AVL树)

递归调用本质上是栈结构,调试把栈打开,理解清楚递归代码逻辑。 中缀表达式中序遍历,后序表达式计算 查找递归 删除叶子结点直接删除,删除节点只有一个孩子,把删除节点的孩子设为删除节点 删除根结点,把右边最小的替换过去获得左边最大的 右边最小:只有一个孩子或者最小 排序树缺点,一直插入有序数会变成链表 平衡排序树 任意一个结点的左子树的高度减去右子树的高度小于等于一 树的高度膨胀的时候,通过旋转平衡树的高度 旋转四种情况 左边比较重 左边不平衡:右单旋转 右边不平衡:左单旋转 右边比较重 左边 ......

44_栈的应用、二叉树

栈的应用 Char code[] = “1 + 2 + 3 *4”; //return 15,中缀表达式 后缀表达式 逆波兰表达式 1.计算 碰到数字就入栈 碰到符号就计算 2.转换 碰到数字打印 碰到运算符比较优先级小于等于出栈,其它入栈 3.Atoi转换字符的数组成基本类型 队列的应用 打印机 双向队列 可以操作头和尾,紧急插到头部,不紧急插到尾部 动态数据和链表 查询都慢 树 主要解决查找问题 定义 树是N(n>=0)个结点的有限集T,当n=0时,为空树 结点的度(degree):结点的子树数 树的度:树种各结点的最大值 N度数:度为n的树 叶子(终端结点):度为0的 ......

43_迭代器、栈、队列

迭代抽象 表示某个数据 数据成员:元素指针 成员函数:下一个(++),获取数据(*),逻辑运算(!= == )等等 const迭代器一般只能遍历,不提供修改。 模板带有作用域定义声明一起实现 解决了节点的安全隐患 链表时间复杂度 插入O(1) 删除O(1) 查询O(n) 随机访问O(n) 使用场合 插入和删除频繁的场景 游戏里面的场景,怪物刷新和死亡 栈和队列 栈先进后出,后进先出 队列是先进先出,后进后出 栈 一般用单向链表来做 栈一般提供迭代器 队列 一般提供单向链表来做 使用数组存放栈和队列的时候 提前知道空间多大的时候 作业 1. ......