Windows人机交互程序设计教学课件-第5课 Windows 程序-窗口.ppt_第1页
Windows人机交互程序设计教学课件-第5课 Windows 程序-窗口.ppt_第2页
Windows人机交互程序设计教学课件-第5课 Windows 程序-窗口.ppt_第3页
Windows人机交互程序设计教学课件-第5课 Windows 程序-窗口.ppt_第4页
Windows人机交互程序设计教学课件-第5课 Windows 程序-窗口.ppt_第5页
免费预览已结束,剩余37页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5课 windows 程序-窗口,北方软件学院,格物致知 见微知著,windows人机交互程序设计,北方软件学院-windows人机交互程序设计,本课主要内容,知识回顾 消息机制 消息机制原理 消息结构 窗口创建 registerclassex createwindow 窗口过程处理函数,北方软件学院-windows人机交互程序设计,windows 数据类型,* *,北方软件学院-windows人机交互程序设计,windows 数据类型,* *,北方软件学院-windows人机交互程序设计,什么是api *,api(application programming interface,应用程序编程接口) 是一套用来控制windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉windows发生了什么。,北方软件学院-windows人机交互程序设计,匈牙利命名法-常用标识符类型前缀*,北方软件学院-windows人机交互程序设计,窗口类别,对话框窗口 模式对话框 非模式对话框 文档窗口 单文档窗口 多文档窗口 特殊窗口,北方软件学院-windows人机交互程序设计,窗口关系,包含关系(组合关系) 父窗口 子窗口,父窗口,子窗口,北方软件学院-windows人机交互程序设计,windows窗口坐标系,(0,0),x,y,(20,10),事件驱动,北方软件学院-windows人机交互程序设计,事件驱动的概念*,什么是事件? 事件是由它的时间和空间所指定的空间时间中的一点。 在计算机中,事件是可以被控件识别的操作,如按下确定按钮,选择某个单选按钮或者复选框。每一种控件有自己可以识别的事件,如窗体的加载、单击、双击等事件,编辑框(文本框)的文本改变事,等等。 事件有系统事件和用户事件。系统事件由系统激发,如时间每隔24小时,银行储户的存款日期增加一天。 什么是事件驱动 简单来说就是:通过触发事件,来运行程序。比如一个按钮(command1),可以通过单击(click)按钮这个事件来触发一个结果:显示一个对话框。,北方软件学院-windows人机交互程序设计,消息的概念,新闻领域消息的概念: 只报道事情的概貌而不讲述详细的经过和细节,以简要的语言文字迅速传播事件。 消息要素:时间、地点、事件、事情发生的原因、经过、结果。 计算机领域概念: 消息,软件对象之间进行交互作用和通讯。 消息与事件之间的关系: 事件触发消息,消息传递事件。,北方软件学院-windows人机交互程序设计,事件驱动程序原理,获取事件,开始,是否退出,事件处理函数/程序,结束,发送消息,接收消息,北方软件学院-windows人机交互程序设计,简单的事件驱动程序,#include void main() char ch; while(ch = getchar() != q) switch (ch) case a: break; case b: break; ,“消息”,键盘输入字符事件获取,北方软件学院-windows人机交互程序设计,简单的事件驱动程序,#include void main() char ch; while(ch = getchar() != q) dealmessage(ch); ,#include void dealmessage(ch) switch (ch) case a: break; case b: break; return 0; ,事件处理函数 (消息处理函数),北方软件学院-windows人机交互程序设计,思考?,问题:在基于控制台的c语言程序中如何截获键盘案件的事件? char ch = getchar(); while(ch != q) printf(“%c”,ch); 能截获鼠标事件么? getchar函数做了什么事情?,北方软件学院-windows人机交互程序设计,getchar函数做了什么事情?,北方软件学院-windows人机交互程序设计,getmessage,windowproc,defwindowproc,系统消息 队列,应用程序 消息队列,鼠标事件,键盘事件 等等,windows 应用程序,消息机制* *,消息循环,操作系统,应用程序,消息,北方软件学院-windows人机交互程序设计,windows消息结构*,typedef struct tagmsg hwnd hwnd; /接收该消息的窗口句柄 uint message; /消息的名称 wparam wparam; /附带参数 lparam lparam; /附带参数 dword time; /消息的传递时间 point pt; /当前光标位置 msg;,窗口的创建,北方软件学院-windows人机交互程序设计,让我们从下面的程序开始,北方软件学院-windows人机交互程序设计,创建窗口的主要步骤*,开始,windows入口 函数,消息循环 结束?,结束,消息1,输入界面,控件响应,系统事件,注册窗口类,创建窗口,是,否,窗口过程处理 函数,消息n,消息2,北方软件学院-windows人机交互程序设计,注册窗口类,什么是窗口类? 编辑框,按钮,对话框等都具有不同的风格。 为什么要注册窗口类? 创建一个新的风格的窗口类型。 新的类型需要在操作系统中进行注册,否则无法创建该类型的窗口。,北方软件学院-windows人机交互程序设计,注册窗口类(api讲解),atom registerclassex(const wndclassex *lpwndclass ) atom registerclass(const wndclass *lpwndclass ) atom 是什么类型?word 执行成功atom != 0,北方软件学院-windows人机交互程序设计,wndclassex,北方软件学院-windows人机交互程序设计,应用举例,北方软件学院-windows人机交互程序设计,创建窗口(api讲解) * *,hwnd createwindow (); hwnd createwindowex ();,北方软件学院-windows人机交互程序设计,创建窗口(api讲解),北方软件学院-windows人机交互程序设计,*createwindows参数讲解,lpctstr lpclassname 指定当前创建的窗口所属的窗口类的名字。 常用的窗口类有:“edit”、“button”、“reichedit”、“listbox”等。 字符串类型。 lpctstr lpwindowsname 指定当前创建的窗口的窗口名字。 dword dwstyle 指名窗口的创建风格 如:如果将这个参数赋值成ws_border 风格,则窗口将是一个带有边框的方形。,北方软件学院-windows人机交互程序设计,*createwindows参数讲解,int x 窗口的水平坐标 int y 窗口的垂直坐标 int nwidth 窗口的宽度 int nheight 窗口的高度,北方软件学院-windows人机交互程序设计,* createwindows参数讲解,hwnd hwndparent 窗口的父窗口的句柄。,北方软件学院-windows人机交互程序设计,* createwindows参数讲解,hmenu hmenu 菜单句柄或者子窗口id 注:如果创建的窗口是一个窗口的子窗口,则用这个参数来标识窗口。 hinstance hinstance 应用程序实例句柄 注:winman 函数传入的参数之一 lpvoid lpparam 存放一些与窗口相关的数据。 一般情况下赋值为null,北方软件学院-windows人机交互程序设计,消息循环*,winmain中 处理消息的循环语句,北方软件学院-windows人机交互程序设计,*getmessage,bool getmessage( lpmsg lpmsg, hwnd hwnd, uint wmsgfiltermin, uint wmsgfiltermax); 功能:从系统消息队列中获得消息;,北方软件学院-windows人机交互程序设计,参数作用,lpmsg : 指向一个消息结构的指针。 hwnd: 想要获取消息所在窗口的句柄,如果等于null,则获取所有消息。 wmsgfiltermin:等于0; wmsgfiltermax:等于0;,北方软件学院-windows人机交互程序设计,消息循环内部api,translateaccelerator 翻译加速键 translatemessage 翻译键盘消息 dispatchmessage 派遣消息 返回,北方软件学院-windows人机交互程序设计,*什么是窗口过程处理函数?,处理窗口消息的函数。 lresult callback wndproc( hwnd hwnd, uint message, wparam wparam, lparam lparam),北方软件学院-windows人机交互程序设计,应用举例,北方软件学院-windows人机交互程序设计,参数作用*,hwnd hwnd 消息所属窗口的句柄 uint message 消息名称 wparam wparam 消息的 wparam参数 lparam lparam 消息的lparam参数 想想消息结构?,北方软件学院

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论