




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
预备知识 C 与VC 基于控制台的应用程序 C Windows应用程序的开发MFC应用程序设计 Windows编程特点 1 消息驱动机制基于Windows程序和基于控制台应用程序之间的一个最根本区别 就在于控制台应用程序是通过调用系统的函数来获得用户输入的 而Windows程序则是通过系统发送的消息来处理用户输入的 在Windows操作环境中 无论是系统产生的动作或是用户运行应用程序产生的动作 都称为事件 Events 产生的消息 Message 例如 在Windows桌面 传统风格 上 双击应用程序的快捷图标 系统就会执行该应用程序 在Windows的应用程序中 也是通过接收消息 分发消息 处理消息来和用户进行交互的 这种消息驱动的机制是Windows编程的最大特点 2 图形设备接口 GDI 在控制台应用程序中 想要在屏幕或打印机上显示或打印一幅图形是一件非常复杂的事件 因为用户必须按照屏幕分辨率模式以及专用绘图函数库调用相应的函数在屏幕上绘图 或根据打印机类型或指令规则向打印机输送数据 而Windows提供了一个抽象的接口 称为图形设备接口 GraphicalDeviceInterface GDI 使得用户直接利用系统的GDI函数就能方便地实现图形和文本的输出 而不必关心与系统相连的外部设备的类型 3 基于资源的程序设计Windows应用程序常常包含众多图形元素 例如光标 菜单 工具栏 位图 对话框等 每一个这样的资源都用相应的标识符来区分 而且Windows内部也有预定义的资源 例如在Ex HelloWin中 LoadIcon和LoadCursor函数将系统内部的IDI APPLICATION 应用程序图标 和IDC ARROW 箭头光标 作为创建窗口的窗口图标和鼠标指针 4 动态链接库动态链接库提供了一些特定结构的函数 能被应用程序在运行过程中装入和连接 且多个程序可以共享同一个动态链接库 这样就可以大大节省内存和磁盘空间 Windows提供了丰富的应用程序可调用的函数 大多数用于实现其用户界面和在屏幕显示的文本和图形 都是通过动态链接库来实现的 这些动态链接库是一些具有DLL扩展名或者有时是EXE扩展名的文件 任务1 登录窗口的代码实现 登录窗口的代码实现 1 创建 登录 对话框2 设置 登录 对话框类和变量3 编写 登录 对话框代码 第一部分应用实践 3 1创建 登录 对话框3 1 1生成默认对话框工程1 进入VC 安装MicrosoftVisualStudio6 0后 在开始菜单中单击MicrosoftVisualStudio6 0子菜单下的MicrosoftVisualC 6 0 即可打开VC 6 0编程平台 如图3 2所示 图3 2打开VC 6 0 3 1 1生成默认对话框工程 编程平台由图3 3所示的各类交互元素组成 其中菜单包含各种编程设计命令 工具栏包括一些命令的快捷按钮和各种导航按钮 搜索框等 视图显示区 项目工作区窗口 将会在建立工程后显示编程视图 程序文本 界面编辑区是主要的工作场所 进行程序的录入和界面的设计 图3 3VC 6 0编程平台 3 1 1生成默认对话框工程 2 建立管理系统工程选择 文件 新建 菜单 在弹出的 新建 对话框中选择 工程 Project 标签 这时显示出一系列的应用程序项目类型 选择MFCAppWizard exe 的项目类型 该类型用于创建可执行的Windows应用程序即MFC应用程序 不同于控制台方式的 Win32ConsoleApplication 并在 工程 Project 中输入项目名XSCJTEST 为与后文叙述一致 请读者在编程时尽量使用本书定义的名称 在 位置 Location 处选择或输入工程保存的位置 如图3 4所示 图3 4MFCAppWizard的 新建 对话框 3 1 1生成默认对话框工程 单击 确定 按钮 出现如图3 5所示的MFCAppWizard Step1对话框 图3 5 Step1 对话框 3 1 1生成默认对话框工程 3 选择应用程序类型系统显示下列单选钮 S单个文档 SingleDocument M多重文档 MultipleDocument 和D基本对话 Dialogbased 为了建立只有一个 登录 对话框的测试程序 选择 D基本对话 保留其他的默认选项 单击 完成 按钮 系统出现一个对话框 显示用户在前面步骤中做出的选择 单击 确定 按钮 系统生成默认的基于对话框的对话框应用程序项目 并且进入VC 工程开发环境 此时默认打开 登录 对话框工程XSCJTEST 3 1 1生成默认对话框工程 4 工程开发环境VC 基于对话框的工程开发环境如图3 6所示 图3 6基于对话框的工程 3 1 2添加 登录 对话框 1 修改 登录 对话框保留VC默认生成的对话框资源IDD XSCJTEST DIALOG不变 如图3 10所示 右键单击Dialog 选择InsertDialog 添加一个新的对话框 图3 10插入新对话框 3 1 2添加 登录 对话框 右键单击右边对话框编辑窗口中刚建立的对话框 选择属性 弹出如图3 11所示的窗口 将对话框标识符改成IDD LOGIN 在MFC程序中 命名方法要完全遵循C C 语言的命名规则 将对话框标题改为 登录学生成绩管理系统 图3 11修改对话框属性 3 1 2添加 登录 对话框 单击 字体 按钮 通过弹出的字体对话框将对话框内的文本设置成 宋体 9 以使自己的对话框和Windows操作系统中的对话框保持外观上的一致 完成后对话框如图3 12所示 图3 12对话框属性修改后的部分界面 3 1 2添加 登录 对话框 2 为 登录 对话框添加控件对话框编辑器最初打开时 控件工具栏是随之出现的 利用此工具栏中各个按钮 可以顺利完成控件的添加 图3 13说明了各个图标按钮所对应的控件类型 图3 13控件工具栏和各按钮含义 3 1 2添加 登录 对话框 如图3 14所示 拖放2个静态文本控件 2个图片控件和2个编辑框控件到对话框上 保留系统自动生成的 确定 和 取消 按钮 或者自己重新添加2个新的按钮 图3 14在对话框上添加控件 3 1 2添加 登录 对话框 如图3 15所示 右击VC资源视图中的XSCJTESTResources 选择import 选择 文件类型 为所有文件 导入一个bmp格式的图片 VC自动将其命名为IDB BITMAP1 并保存在资源视图的Bitmap分类下 图3 15import命令导入图片文件 3 1 2添加 登录 对话框 设置左上方图片控件的属性 将General选项卡中的Type设为BITMAP Image设为IDB BITMAP1 如图3 16 a 所示 之后图片控件将会显示此图片 对另一个图片控件则拉成细条状 如图3 16 b 设置属性 将General选项卡中的Type设为Frame 并勾选ExtendedStyles选项卡中的StaticEdge项 调整粗细长度作为分隔条 a 显示图片的图片控件属性 b 用做分割条的图片控件 3 1 2添加 登录 对话框 分别右键单击控件 在弹出的属性对话框中 对2个静态文本控件和2个按钮分别命名 即在Caption一栏分别填入标题 用户名 密码 确认 Y 取消 C 如图3 16 c 和图3 16 d 所示 其中按钮名称后的 X 表示此按钮可以使用键盘上的Alt X组合键作为快捷键 c 用户名 静态文本标签 d 确认 按钮属性 3 1 2添加 登录 对话框 如图3 16 e 所示 在 密码 编辑框属性的Styles选项卡中勾选Password 这样 程序运行后 用户输入密码到编辑框时将会显示 符号 e 密码 编辑框属性图3 16设置控件属性 3 1 2添加 登录 对话框 添加的控件可能大小不一 此时可以选定某个控件 移动鼠标到控件边缘处出现双箭头来调整大小 要设置多个控件之间的位置大小关系时 先按住Shift键不放 然后用鼠标选取控件 直到所需要的多个控件选取之后再释放Shift键 若在选取时 对已选取的控件再单击一下 则取消该控件选取 一旦单个控件被选取后 其四周由选择框包围着 选择框上还有几个蓝色实心小方块 拖动它可改变控件的大小 多个控件被选取后 其中只有一个控件的选择框有几个蓝色实心小方块 这个控件称为 主要控件 而其他控件的选择框的小方块是空心的 如图3 17所示 图3 17设置控件大小和位置 3 1 2添加 登录 对话框 在菜单上选择Layout 编排 Align 对齐 可以选择左 右 上 下对齐 位置以 主要控件 为基准 使用MakeSameSize命令则可以改变其他控件的大小 使其与 主要控件 的尺寸一致 编辑完成后的 登录 对话框如图3 18所示 图3 18 登录 对话框编辑后的最终状态 3 2设置 登录 对话框类和变量 1 为 登录 对话框IDD LOGIN创建类在应用程序中使用添加的对话框前 须先为该对话框模板创建一个用户对话框类 在对话框资源模板的空白区域 没有其他元素或控件 内双击鼠标 将弹出如图3 19所示的对话框 询问是否为对话框资源创建一个新类 图3 19 AddingaClass 对话框 3 2设置 登录 对话框类和变量 单击 OK 按钮 将弹出如图3 20所示的NewClass对话框 其中 Name框是用来输入用户定义的类名 注意要以 C 字母打头 以保持与VisualC 标识符命名规则一致 FileName框用来指定类的源代码文件名 单击 Change 按钮可改变默认的源文件名称及其在磁盘中的位置 Baseclass和DialogID内容是由系统自动设置的 一般无须修改 从Baseclass框的内容可以看出 用户对话框类是从基类CDialog派生而来的 图3 20 NewClass 对话框 3 2设置 登录 对话框类和变量 2 为 登录 对话框设置控件关联变量使用MFCClassWizard可以很容易地为一个控件定义关联变量并可设置其数据范围 例如 下面的步骤是为CDlgLogin类的控件IDC EDIT1和IDC EDIT2即 用户名 和 密码 编辑框添加关联变量m user和m pass 1 按快捷键Ctrl W 打开MFCClassWizard 并切换到MemberVariables页面 如图3 21所示 图3 21MFCClassWizard的 MemberVariables 页面 3 2设置 登录 对话框类和变量 2 选定Classname为CDlgLogin 然后在ControlIDs列表中 选定所要关联的控件ID号IDC EDIT2 双击鼠标左键或单击 AddVariable 按钮 弹出AddMemberVariable对话框 在对话框设置变量的名称 类别和数据类型 如图3 22所示 图3 22 AddMemberVariable 对话框 3 2设置 登录 对话框类和变量 需要说明的是 对于大多数控件而言 Category框内可选择Value或Control两种类型 Control所对应的变量类型就是MFC为该控件封装的控件类 Value所对应的是数值类型 不同的控件所提供的关联的数值类型各不相同 例如 对于编辑框来说 Variablestype中的数值类型可以有CString 字符串 int UINT long DWORD float double BYTE short BOOL等 3 在Membervariablename框中填好与控件相关联的成员变量m pass Category 分类 选择为Value Variabletype 变量类型 为Cstring 单击 OK 按钮 又回到MFCClassWizard对话框的MemberVariables页面中 以同样方法为IDC EDIT1控件添加Control分类CEdit变量类型的变量m user 在ControlIDs列表中出现刚才添加的控件关联变量 或直接称之为 控件变量 3 2设置 登录 对话框类和变量 如果添加的关联变量是一个数值类型 则在MFCClassWizard对话框的MemberVariables页面下方还要求用户输入变量的范围 这就是控件的数据校验设置 例如 我们在下方的MaximumCharacters框中设定m pass变量允许的最大字符个数为20 即密码不能大于20个字符 如图3 23所示 图3 23添加编辑框的数据成员 3 3编写 登录 对话框代码 到这里为止 MFCAppWizard已经根据用户的选择内容和对话框设置自动生成基本的工程框架 在此框架下用户可以编写程序的实现代码 选定 登录 对话框上的 确认 按钮 按Ctrl W组合键打开MFCClassWizard 在Messages下选择BN CLICKED 保持ClassName下的CDlgLogin不变 单击AddFunction 创建OnButton1 消息到CDlgLogin类中 如图3 24所示 在Windows操作环境中 无论是系统产生的动作或是用户运行应用程序产生的动作 都称为事件 Events 产生的消息 Message 例如 在Windows桌面上双击应用程序的快捷图标 系统就会执行该应用程序 在Windows的应用程序中 也是通过接收消息 分发消息 处理消息来和用户进行交互的 这里的BN CLICKED消息表示程序运行时单击确认按钮IDC BUTTON1时的消息 3 3编写 登录 对话框代码 图3 24创建确认按钮事件 3 3编写 登录 对话框代码 1 在上面的ClassWizard中 单击EditCode 进入代码编辑状态 添加以下代码 voidCDlgLogin OnButton1 TODO AddyourcontrolnotificationhandlercodehereCStringc user c password 将 用户名 和 密码 编辑框控件的值分别传给字符串变量c user和c password 这里m user和m password均为Control类型的变量m user GetWindowText c user GetWindowText 函数m password GetWindowText c password if c user IsEmpty c password IsEmpty 用IsEmpty函数判断用户名和密码字符串是否为空MessageBox 用户名或密码
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建三明市公路事业发展中心下属国有企业人员招聘1人笔试历年参考题库附带答案详解
- 2025牧原集团西北区域招聘2133人笔试历年参考题库附带答案详解
- 2025安徽华荣远诚人力资源服务集团有限公司派驻寿县楚晨城运公司保安经理及保安队长招聘及候选人笔试历年参考题库附带答案详解
- 2025四川巴中市恩阳区城乡建设投资集团有限公司子公司招聘7人笔试历年参考题库附带答案详解
- 2025内蒙古呼和浩特运营维管段招聘笔试历年参考题库附带答案详解
- 2025年延安通和电业有限责任公司招聘(5人)模拟试卷及参考答案详解一套
- 2025内蒙古首批事业单位“1+N”招聘2502名工作人员考前自测高频考点模拟试题附答案详解
- 2025广西农业科学院甘蔗研究所甘蔗生物固氮团队公开招聘1人考前自测高频考点模拟试题及答案详解(各地真题)
- 2025吉林省矿业集团有限责任公司遴选31人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025吉林省地震局第二批次事业单位开招聘1人模拟试卷附答案详解(典型题)
- 2024-2025学年译林版八年级英语上学期期末复习 专题01 Unit1 ~Unit8重点词汇短语句子归纳【考点清单】
- 2023-2024届高考语文复习诗歌专题训练-主题“羁旅行役”
- 《系统工程与决策分析》全册配套课件
- DL∕T 2033-2019 火电厂用高压变频器功率单元试验方法
- 高中数学-斐波那契数列与黄金分割教学设计
- 数据驱动的教育决策
- 农作物植保员职业技能竞赛题库及答案
- T梁湿接缝及横隔梁施工方案
- (完整)易制毒化学品使用管理责任书
- 石群邱关源电路课件(第8至16单元)白底
- 个人增资入股合同
评论
0/150
提交评论