已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章第七章 windowswindows应用程序应用程序 吴良杰吴良杰 harbin engineering universityharbin engineering university 哈尔滨工程大学课件 简单的简单的windowswindows应用程序应用程序 n n winmainwinmain函数的原型如下:函数的原型如下: int winapi winmain int winapi winmain ( ( hinstancehinstance hinstancehinstance, , / / 当前实例当前实例句柄句柄 hinstancehinstance hprevinstancehprevinstance, , / / 前一实例前一实例句柄句柄 lpstrlpstr lpcmdlinelpcmdline, , / / 指向命令行参数的指针指向命令行参数的指针 intint ncmdshowncmdshow) ) / / 窗口的显示状态窗口的显示状态 #include int winapi winmain (hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int ncmdshow) messagebox (null, “你好,我的visual c+世界!“, “问候“, 0) ; return 0 ; 句柄:句柄: 一个标识一个标识windowswindows 资源和设备等对象的资源和设备等对象的 变量变量,或者是一个对,或者是一个对 操作系统资源的操作系统资源的引用引用 。 哈尔滨工程大学课件 简单的简单的windowswindows应用程序应用程序 n n windows.hwindows.h头文件头文件 定义了定义了windowswindows的所有数据类型、函数调用、数的所有数据类型、函数调用、数 据结构和符号常量。据结构和符号常量。 n n messagebox:messagebox: 一个一个win32 win32 apiapi函数,弹出一个对话框窗口,显函数,弹出一个对话框窗口,显 示短信息。示短信息。 n n apiapi: application programming interface application programming interface 应用程序接口应用程序接口 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n windowswindows的程序设计语言的程序设计语言 vc vc、vbvb、vjvj 面向对象语言面向对象语言 n n 对象对象 windowswindows的规范部件。的规范部件。 如:窗口、菜单、按钮、对话框如:窗口、菜单、按钮、对话框 特征:具有规范形态和操作模式特征:具有规范形态和操作模式. . n n 编程方法编程方法 传统编写法传统编写法api(api(application programming interfaceapplication programming interface ) ) 交互式方法交互式方法mfc(mfc(microsoft foundation classesmicrosoft foundation classes ) ) 编写编写windowswindows 程序相当一部分工程序相当一部分工 作是在创建作是在创建对象对象和和 为为对象对象属性赋值属性赋值 哈尔滨工程大学课件 windowswindows编程基础编程基础 为应用程序提为应用程序提 供供windowswindows 系统特殊系统特殊函数函数 及数据及数据结构结构 api winwin应用程序应用程序 可以利用标准可以利用标准 大量大量apiapi函数函数 调用调用系统功能系统功能 . 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n apiapi函数函数 实现窗口的 创建、移动 和修改功能. 窗口管理函数窗口管理函数 系统服务函数系统服务函数 图形设备图形设备(gdi )(gdi )函数函数 实现与操作 系统有关的 多种功能. 实现与设备 无关的图形 操作功能 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n 窗口窗口 windows windows应用程序基本操作单元、应用程序与用应用程序基本操作单元、应用程序与用 户之间交互的接口环境,系统管理应用程序的基户之间交互的接口环境,系统管理应用程序的基 本单位。本单位。 n n 消息驱动消息驱动 消息:描述事件发生的信息消息:描述事件发生的信息( (如按下鼠标或键盘如按下鼠标或键盘) ) windows windows程序程序执行顺序取决于事件发生的顺序,执行顺序取决于事件发生的顺序, 程序的执行顺序是由顺序产生的程序的执行顺序是由顺序产生的消息消息驱动的,但驱动的,但 是是消息消息的产生往往并不要求有次序之分。的产生往往并不要求有次序之分。 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n 消息的组成消息的组成 消息号:由事先定义好的消息名标识消息号:由事先定义好的消息名标识 字参数:用于提供消息的字参数:用于提供消息的附加信息附加信息 长字参数:用于提供消息的长字参数:用于提供消息的附加信息附加信息 n n 种类消息前缀种类消息前缀 bmbm表示按钮控制消息表示按钮控制消息 cbcb表示组合框控制消息表示组合框控制消息 dmdm表示默认下压式按钮控制消息表示默认下压式按钮控制消息 emem表示编辑控制消息表示编辑控制消息 lblb表示列表框控制消息表示列表框控制消息 sbmsbm表示滚动条控制消息表示滚动条控制消息 wmwm表示窗口消息表示窗口消息 附加信息与具体附加信息与具体 消息号的值有关消息号的值有关 , 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n windowswindows应用程序常用消息应用程序常用消息 1. wm_lbuttondown1. wm_lbuttondown:产生单击鼠标左键的消息产生单击鼠标左键的消息 字参数:键按下的状态;长字参数:光标的坐标字参数:键按下的状态;长字参数:光标的坐标 2. wm_keydown2. wm_keydown:按下一个按下一个非系统键非系统键时产生的消息时产生的消息 3. wm_ char3. wm_ char:按下一个按下一个非系统键非系统键时产生的消息时产生的消息 4. wm_create4. wm_create:由由createwindowcreatewindow函数发出的消息函数发出的消息 wparamwparam:未用:未用 1param1param:包含一个指向:包含一个指向createstructcreatestruct数据结构的指针数据结构的指针 5. wm_close5. wm_close:关闭窗口时产生的消息关闭窗口时产生的消息 6. wm_destroy:6. wm_destroy:由由destroywiodowdestroywiodow函数发出的消息函数发出的消息 7. wm_quit7. wm_quit:由由postquitmessagepostquitmessage函数发出的消息函数发出的消息 8. wm_paint8. wm_paint: 哈尔滨工程大学课件 windowswindows编程基础编程基础 n n 句柄句柄 一个一个4 4字节长的数值,用于标识应用程序中不同的字节长的数值,用于标识应用程序中不同的 对象对象和和同类对象中不同的实例同类对象中不同的实例。 应用程序通过应用程序通过句柄句柄访问相应的对象信息。访问相应的对象信息。 常用句柄常用句柄 hwndhwnd窗口句柄窗口句柄hdchdc设备环境句柄设备环境句柄 hbitmaphbitmap位图句柄位图句柄hcursorhcursor光标句柄光标句柄 hiconhicon图标句柄图标句柄hfonthfont字体句柄字体句柄 hmenuhmenu菜单句柄菜单句柄hpenhpen画笔句柄画笔句柄 hfilehfile文件句柄文件句柄hbrushhbrush画刷句柄画刷句柄 hinstancehinstance当前实例句柄当前实例句柄 哈尔滨工程大学课件 windowswindows中的事件驱动程序设计中的事件驱动程序设计 n n 实例:实例: 统计一个学生的平均成绩。统计一个学生的平均成绩。 启动 消息处理 结束 输入姓名 输入第一次成绩 输入第二次成绩 输入第三次成绩 计算平均成绩 哈尔滨工程大学课件 windowswindows应用程序的基本结构应用程序的基本结构 n n 应用程序组成应用程序组成 1.c1.c语言源程序文件语言源程序文件 2.2.头文件头文件 3.3.模块定义文件模块定义文件 4.4.资源描述文件资源描述文件 5.5.项目文件项目文件 哈尔滨工程大学课件 windowswindows应用程序的基本结构应用程序的基本结构 n n 源程序结构源程序结构 1 1、入口函数、入口函数winmainwinmain 注册窗口类,建立窗口及执行必要的初始化;注册窗口类,建立窗口及执行必要的初始化; 进入消息循环,根据接受的消息调用相应的处理进入消息循环,根据接受的消息调用相应的处理 过程;过程; 当消息循环检索到当消息循环检索到wm_quitwm_quit时终止程序运行时终止程序运行 2 2、窗口函数、窗口函数wndprocwndproc winprocwinproc函数由一个或多个函数由一个或多个switchswitch语句组成。每语句组成。每 一条一条casecase语句对应一种消息,当应用程序接收到语句对应一种消息,当应用程序接收到 一个消息时,相应的一个消息时,相应的casecase语句被激活并执行相应语句被激活并执行相应 的响应程序模块。的响应程序模块。 哈尔滨工程大学课件 windowswindows应用程序的基本结构应用程序的基本结构 n n 初始化初始化 窗口类的定义:窗口类的定义: 定义窗口的形式与功能定义窗口的形式与功能 窗口类的注册:窗口类的注册: 窗口类必须先注册后使用,窗口类必须先注册后使用,registerclassregisterclass 创建窗口实例创建窗口实例 createwindowcreatewindow 显示窗口显示窗口 showwindow showwindow ,updatewindowupdatewindow 哈尔滨工程大学课件 windowswindows应用程序的基本结构应用程序的基本结构 n n 消息循环消息循环 while (getmessage (translatemessage( dispatchmessage(dispatchmessage( 将消息的虚拟键 转换为字符信息将消息传送到 指定窗口函数 从消息队列中读取 一条消息,并将消 息放在msg结构中 哈尔滨工程大学课件 n n 窗口函数的一般形式如下:窗口函数的一般形式如下: lresult callback wndproc(hwnd hwnd,uint lresult callback wndproc(hwnd hwnd,uint messgae,messgae, wparam wparam,lparam lparam ) wparam wparam,lparam lparam ) switch(message)switch(message) message message为标识的消息为标识的消息 case case case case wm_destroywm_destroy: : postquitmessage(0);postquitmessage(0); default:default: return return defwindowprocdefwindowproc(hwnd,message,wparam,lparam);(hwnd,message,wparam,lparam); return(0);return(0); 为未定义处理过程的消息提供缺省处理 哈尔滨工程大学课件 数据类型数据类型 数据类类型 说说 明 byte 8位无符号字符 bstr 32位字符指针针 colorref 32位整数,表示一个颜颜色 word 16位无符号整数 long 32位有符号整数 dword 32位无符号整数,是word的两倍长长度 uint 32位无符号整数 bool 布尔值值,值为值为 true或false handle 句柄 lpstr 32位指针针,指向字符 lpcstr 32位指针针,指向字符串常量 lptstr 32位指针针,指向字符串,此字符串可移植到unicode和dbcs双字符集 lpctstr 32位指针针,指向字符串常量,此字符串可移植到unicode和dbcs双字符集 lpvoid 32位指针针,可指向任何类类型数据 lpresult 32位数值值,作为为窗口函数或callback函数的返回类类型 wndproc 32位指针针,指向一个窗口函数 哈尔滨工程大学课件 一些重要的数据结构一些重要的数据结构 n n msgmsg:包含一个消息的全部信息,是消息发送的:包含一个消息的全部信息,是消息发送的 格式格式 n n windclasswindclass:包含一个窗口类的全部信息及属:包含一个窗口类的全部信息及属 性性 n n pointpoint:定义了屏幕上或窗口中的一个点的:定义了屏幕上或窗口中的一个点的x x和和 y y 坐标坐标 n n rectrect:定义了一个矩形区域及其左上角和右下:定义了一个矩形区域及其左上角和右下 角的坐标角的坐标 哈尔滨工程大学课件 #include #include lresult callback wndproc(hwnd,uint,wparam,lparam);lresult callback wndproc(hwnd,uint,wparam,lparam); int winapi winmain (hinstance hinstance, hinstance int winapi winmain (hinstance hinstance, hinstance hprevinstance, lpstr lpcmdline, int ncmdshow)hprevinstance, lpstr lpcmdline, int ncmdshow) hwnd hwnd;hwnd hwnd; msg msg; msg msg; wndclass wndclass; wndclass wndclass; wndclass.style=cs_hredraw|cs_vredraw; wndclass.style=cs_hredraw|cs_vredraw; wndclass.lpfnwndproc=wndproc; wndclass.lpfnwndproc=wndproc; wndclass.cbclsextra=0; wndclass.cbclsextra=0; wndclass.cbwndextra=0; wndclass.cbwndextra=0; wndclass.hinstance=hinstance; wndclass.hinstance=hinstance; wndclass.hicon=loadicon(null,idi_application); wndclass.hicon=loadicon(null,idi_application); wndclass.hcursor=loadcursor(null,idc_arrow); wndclass.hcursor=loadcursor(null,idc_arrow); wndclass.hbrbackground=(hbrush)getstockobject(white_bruwndclass.hbrbackground=(hbrush)getstockobject(white_bru sh);sh); wndclass.lpszmenuname=null; wndclass.lpszmenuname=null; wndclass.lpszclassname=“hellowin“; wndclass.lpszclassname=“hellowin“; 哈尔滨工程大学课件 if(!registerclass(!“,“hellowin“,0); return 0; return 0; hwnd=createwindow(“hellowin“,hwnd=createwindow(“hellowin“, “ “我的窗口我的窗口“, “, ws_overlappedwindow, ws_overlappedwindow, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault, null, null, null, null, hinsta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 独立储能电站储能系统配置方案
- 钢筋混凝土及砖砌跌水井施工方案
- 钢筋混凝土及砖砌截流井施工方案
- 创新券评定报告
- 珍贵树种培育规程 柚木标准立项发展报告
- 数控坐标磨床第1部分:精度检验标准立项发展报告
- 技术赋能智慧教育之实践路径
- 污水处理岗位职业健康操作规程
- 重卡换电站消防专项设计
- 水利堤防除险加固技术方案
- 2024版人教版初中语文九上名著《唐诗三百首》复习题
- GB/T 17623-2026绝缘油中溶解气体组分含量的气相色谱测定法
- 2026广东珠海市斗门区招聘公办中小学教师134人(编制)考试参考试题及答案解析
- 2026年中国时尚耳夹数据监测研究报告
- 广西壮族自治区梧州市2026年高三第一次模拟考试物理试卷(含答案解析)
- 2026广州医药集团有限公司春季校园招聘笔试历年典型考点题库附带答案详解
- 上海市二级注册建造师继续教育(建筑工程)考试题库
- (2025年)市场监管法律知识复习试题考前模拟测试题附答案
- 新疆建设工程消防设计审查、验收常见问题技术解析(2024年)
- pe管道顶管施工方案
- 《DLT 1231-2018电力系统稳定器整定试验导则》专题研究报告深度
评论
0/150
提交评论