补充windows编程

上传人:fgh****35 文档编号:247980018 上传时间:2024-10-21 格式:PPT 页数:28 大小:185.50KB
返回 下载 相关 举报
补充windows编程_第1页
第1页 / 共28页
补充windows编程_第2页
第2页 / 共28页
补充windows编程_第3页
第3页 / 共28页
点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,前一页,休息,对话框及常用控件,哈尔滨工业大学,(,威海,),计算机科学与技术学院,张小东,操作系统补充:,C,+,语言程序设计,1,本章主要内容,Windows,编程特点,添加并使用对话框,使用向导创建对话框应用程序,使用无模式对话框,通用对话框和消息对话框,控件的创建和基本使用方法,静态控件和按钮,编辑框和旋转按钮控件,列表框和组合框,其它,2,Windows,编程特点,直观、高效的面向对象的图形用户界面,易学易用,用户界面统一、友好、漂亮,丰富的设备无关的图形操作,多任务,Windows,操作平台的特点,3,Windows,编程特点,#include,int,WINAPI,WinMain,(HINSTANCE,hInstance,HINSTANCE,hPrevInstance,LPSTR,lpCmdLine,int,nCmdShow,),MessageBox,(NULL,你好,我的,Visual C+,世界!,问候,0);,return 0;,简单,windows,程序,4,Windows,编程特点,事件驱动的程序设计,消息循环与输入,图形输入与输出,用户界面对象,资源共享,Windows,应用程序组成,5,Windows,编程特点,由事件的发生来控制。事件的发生是随机的、不确定的,并没有预定的顺序,允许程序员或用户用各种合理的顺序来安排程序的流程。,面向用户的程序设计方法。除了完成所需功能之外,更多的考虑了用户可能的各种输入,并针对性的设计相应的处理程序,“被动”式程序设计方法,程序开始运行时,处于等待用户输入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事件状态。,事件驱动的程序设计,6,Windows,编程特点,事件驱动的程序设计,图,1,事件驱动程序模型,7,Windows,编程特点,事件驱动围绕着消息的产生与处理展开,一条消息是关于发生的事件的消息。事件驱动是靠消息循环机制来实现的。,消息是一种报告有关事件发生的通知。,消息循环与输入,8,Windows,编程特点,Windows,应用程序的消息来源有以下四种:,(,1,)输入消息:包括键盘和鼠标的输入。此类消息先放在系统消息队列中,后由,Windows,将它们送入应用程序消息队列中,由应用程序来处理消息,(,2,)控制消息:用来与,Windows,的控制对象进行双向通信。此类消息一般不经过应用程序消息队列,而是直接发送到控制对象上去,(,3,)系统消息:对程序化的事件或系统时钟中断作出反应。一些系统消息,象,DDE,消息(动态数据交换消息)要通过,Windows,的系统消息队列,而有的则不通过系统消息队列而直接送入应用程序的消息队列,如创建窗口消息。,(,4,)用户消息:程序员自己定义并在应用程序中主动发出的,一般由应用程序的某一部分内部处理。由,Windows,来统一管理的,消息循环与输入,9,Windows,编程特点,Windows,操作系统包括三个内核基本元件:,GDI(,图形设备接口,),:负责在屏幕上绘制像素、打印硬拷贝输出,绘制用户界面包括窗口、菜单、对话框等,(GDI32.DLL),KERNEL,(系统内核):支持与操作系统密切相关的功能:如进程加载,文本切换、文件,I/O,,以及内存管理、线程管理等,(KERNEL.DLL),USER,:为所有的用户界面对象提供支持,它用于接收和管理所有输入消息、系统消息并把它们发给相应的窗口的消息队列。消息队列是一个系统定义的内存块,用于临时存储消息;或是把消息直接发给窗口过程。每个窗口维护自己的消息队列,并从中取出消息,利用窗口函数进行处理,(USER32.DLL),消息循环与输入,10,Windows,编程特点,图,2,消息驱动模型,消息循环与输入,11,Windows,编程特点,1.Windows,允许多窗口操作,2.Windows,提供了丰富的图形函数用于图形输出,3.Windows,下的输出是设备无关的。,-GDI,提供两种基本服务:创建图形输出和存储图象。,-GDI,识别四种类型的设备:显示屏幕、硬拷贝设备(打印机、绘图机)、位图和图元文件。,-GDI,的图形输出是面向窗口的,面向窗口包含两层含义:(,1,)每个窗口作为一个独立的绘图接口来处理,有它自己的绘图坐标。(,2,)绘图仅对于本窗口有效,图形在窗口边界会被自动裁剪,也就是说窗口中的每一个图形都不会越出边界。,图形输入与输出,12,Windows,编程特点,Windows,支持丰富的用户接口对象,包括:,窗口、边框、系统菜单框、标题栏、菜单栏、工具条、客户区、垂直滚动条和水平滚动条、状态栏、图标、光标、插入符、对话框、控件、消息框 等,用户界面对象,13,Windows,编程特点,Windows,是一个多任务的操作系统,各个应用程序共享系统提供的资源,常见的资源包括:设备上下文,画刷,画笔,字体,对话框控制,对话框,图标,定时器,插入符号,通信端口,电话线等。,使用基本模式:,1.,向,Windows,系统请求资源;,2.,使用该资源;,3.,释放该资源给,Windows,以供别的程序使用,资源共享,14,Windows,编程特点,典型的,Windows,应用程序的构成,C,CPP,源程序文件:源程序文件,H,HPP,头文件:头文件包含了,CPP,、,C,源文件中所有数据、模块、类的声明。,资源文件:包含了应用程序所使用的全部资源定义,通常以,.RC,为后缀名。包括:字符串资源、加速键表、对话框、菜单、位图、光标、工具条、图标、版本信息和用户自定义资源等,Windows,应用程序组成,15,Windows,编程特点,在,Windows,应用程序中引入资源的优点,1.,降低内存需求:在应用程序实际用到这些资源时才装入内存。,2.,便于统一管理和重复利用:将位图、图标、字符串等按资源文件方式组织便于统一管理和重用。,3.,应用程序与界面有一定的独立性,有利于软件的国际化,Windows,应用程序组成,16,添加并使用对话框,添加对话框资源,添加和布局控件,生成对话框类,添加用户代码,在程序中使用对话框,17,添加并使用对话框,菜单中,“插入”,“资源”,ResourceView,中选中,Dialog,点右键添加对话框,设置对话框属性,添加对话框资源,18,添加并使用对话框,在控件工具栏中选择控件添加到对话框中,运用控件布局工具栏进行合理布局,添加和布局控件,19,添加并使用对话框,在对话框空白处双击打开,Add a Class,对话框,运用,MFC,ClassWizard,对话框添加消息映射函数,在新添加的函数中加入代码,添加对话框类与代码,20,例,1,添加,OnInitDialog,函数,BOOL,CFirstDlg:OnInitDialog,(),CDialog:OnInitDialog,();,CStatic,*,pWnd,=(,CStatic,*)GetDlgItem(IDC_STATIC_1);,pWnd,-,SetWindowText,(,这是我的第一个对话框!,);,return TRUE;,添加对话框类与代码,21,添加并使用对话框,在需要调用的地方创建对话框实体,创建方法:,对话框类名实例名,;,实例名,.,DoModal,();,在程序中使用对话框,22,动态添加控件与映射控件通用消息,在,MFC,ClassWizard,对话框中找到处理,WM_COMMAND,消息函数,OnCommand,添加如下代码,BOOL,CEx_DlgCtrlsDlg:OnCommand(WPARAM,wParam,LPARAM,lParam,),WORD,nCode,=,HIWORD(wParam,);/,控件的通知消息,WORD,nID,=,LOWORD(wParam,);/,控件的,ID,号,if(,nID,=201)&(nCode=BN_CLICKED),MessageBox,(,你按下了,你好,按钮!,);,if(,nID,=IDC_BUTTON1)&(nCode=BN_CLICKED),MessageBox,(,这是在,OnCommand,处理的结果!,);,return,CDialog:OnCommand(wParam,lParam,);,23,控件的创建和基本使用方法,24,使用,ListBox,添加,ListBox,控件,修改属性为,Report,定义与之关联的变量,m_list,插入列,m_list.InsertColumn(0,设备号,);,m_list.InsertColumn(1,设备名,);,25,使用,ListBox,修改显示方式,RECT,rect,;,m_list.GetWindowRect(&rect,);,int,wid,=,rect.right,-,rect.left,;,m_list.SetColumnWidth(0,wid/2);,m_list.SetColumnWidth(1,wid/2);,m_list.SetExtendedStyle(LVS_EX_FULLROWSELE,CT);,26,使用,ListBox,插入行,for(int,i=0;i4;i+),m_list.InsertItem(i,(CString)i+48,);,m_list.SetItemText(i,1,(CString)i+48);,27,28,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 机械制造 > 工业自动化


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!