Windows人机交互程序设计教学.ppt
第2课 Windows 程序入门,北方软件学院,格物致知 见微知著,Windows人机交互程序设计,北方软件学院-Windows人机交互程序设计,思考,大专和大本的区别是什么?我们上大学是为了什么?想成为软件开发高手么?怎么成为软件开发高手?你的人生目标是什么?,北方软件学院-Windows人机交互程序设计,课程意义,离散数学,C语言,数据结构,数据库,逻辑运算,程序是什么,设计程序,数据的组织处理,操作系统,计算机的操作原理,编译原理,Windows程序设计,程序的运行原理,应用程序设计传统工具,C+程序设计,应用程序设计热门工具,JAVA程序设计,Web程序设计,应用程序开发基础,互联网应用程序开发基础,北方软件学院-Windows人机交互程序设计,本课主要内容,高级语言语法分析Windows程序入门 Windows程序入口函数 Windows程序的数据类型Windows概念 句柄 API,北方软件学院-Windows人机交互程序设计,程序语言特征,问题1:C语言的主函数(入口函数)是?问题2:C语言的常用数据类型有哪些?问题3:C语言的常用运算符有哪些?问题4:学习一门程序语言我们需要掌握哪些内容?,北方软件学院-Windows人机交互程序设计,回顾:C语言入口函数,void main()*int main(int argc,char*argv)argc 作用是什么?Argv 作用是什么?,*,北方软件学院-Windows人机交互程序设计,C语言入口函数*,argc是命令行总的参数个数,argv是argc个参数,其中第0个参数是程序的全名,以后的参数是命令行后面跟的用户输入的参数。int main(int argc,char*argv)int i;for(i=0;ii;return 0;执行时敲入 F:D1.EXE aaaa bbb ccc ddd 输出如下:F:D1.EXE aaaa bbb ccc ddd,北方软件学院-Windows人机交互程序设计,数据类型*,基本类型整形、实形、字符型、布尔型构造类型数组、结构体、联合体特殊类型指针类型Void类型,北方软件学院-Windows人机交互程序设计,常量与变量*,常量整形、字符型、实形、字符串类型变量整形、字符型、实形结构体形、联合体形指针类型,北方软件学院-Windows人机交互程序设计,运算符*,算术运算符:+-*/%+-关系运算符:=开关运算符:?:位运算符:&|,北方软件学院-Windows人机交互程序设计,程序流程控制语句*,开关语句:if else;switch循环语句:for循环;while 循环;do while 循环辅助控制语句:break;continue;return;goto,北方软件学院-Windows人机交互程序设计,高级程序语言语法总结,1)入口函数2)数据类型3)变量常量4)运算符5)流程控制语句6)数组、函数、结构体、指针/引用,Windows程序是否也具备上述内容?,Windows程序入门,北方软件学院-Windows人机交互程序设计,什么是Windows程序,Windows程序就是所有可以在Windows系统下运行的程序的统称。这里的Windows程序特指:窗口程序。,北方软件学院-Windows人机交互程序设计,什么是应用程序?*,应用程序是指为了完成某项或某几项特定任务而被开发运行于操作系统之上的计算机程序。对于应用程序,需要了解的是:每一个应用程序运行于独立的进程、他们拥有自己独立的地址空间。不同应用程序的分界线称为进程边界。对应概念是:系统程序。,北方软件学院-Windows人机交互程序设计,Windows程序的语法*,入口函数数据类型API函数事件驱动的程序机制其他同C语言部分,北方软件学院-Windows人机交互程序设计,Windows 入口函数,int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)涉及数据类型:HINSTANCE?LPSTR?int,*,北方软件学院-Windows人机交互程序设计,APIENTRY,编译器用来标识函数进栈顺序的标志,北方软件学院-Windows人机交互程序设计,HINSTANCE hInstance(进程的实例句柄),句柄的含义。问题1:为什么要有学号?问题2:让你来猜想,句柄的含义是什么?,北方软件学院-Windows人机交互程序设计,句柄的概念*,句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。应用程序能够通过句柄访问相应的对象的信息。句柄不是一个指针,程序不能利用它句柄来直接阅读文件中的信息。实例句柄是Windows进程的唯一标识。,北方软件学院-Windows人机交互程序设计,什么是进程?什么是线程?*,进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。对于操 作系统而言,其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从主线程的执行开始进而创建一个或多个附加线程,就是所谓基于多线程的多任务。,北方软件学院-Windows人机交互程序设计,HINSTANCE 数据类型:,HINSTANCE hInstance:进程的实例句柄,北方软件学院-Windows人机交互程序设计,HINSTANCE hPrevInstance,指向应用程序的前一个进程的实例句柄,在Win9x以上版本的Windows操作系统该参数为NULL,已经不被使用。,北方软件学院-Windows人机交互程序设计,LPSTR lpCmdLine,LPSTR=char*命令行缓冲区,不包括程序的名字。请:回想一下 char*argv的作用。,北方软件学院-Windows人机交互程序设计,int nCmdShow,窗口是否显示标志SW_HIDESW_SHOW注:在创建窗口的使用会用到该参数,这里不在详述。,北方软件学院-Windows人机交互程序设计,参数意义总结,第一个参数hInstance是进程实例句柄。第二个参数hPrevInstance 没有意义。第三个参数lpCmdLine是一个字符串指针,它包含了传给程序的任何参数。第四个参数nCmdShow指明程序开始运行的状态主窗口的显示方式。,Windows程序中的常用数据类型,北方软件学院-Windows人机交互程序设计,C语言常用数据类型,北方软件学院-Windows人机交互程序设计,C语言常用数据类型,北方软件学院-Windows人机交互程序设计,Windows 数据类型,*,北方软件学院-Windows人机交互程序设计,Windows 数据类型,*,北方软件学院-Windows人机交互程序设计,HINSTANCEHWNDHANDLEHPENHBRUSHHBITMAPHFONTHDCHRESOURCEHCURSOR,Windows 新增数据类型:句柄类型,*,北方软件学院-Windows人机交互程序设计,RECT=struct _RECTint left,int top,int right,int bottomPOINT=struct _POINTint x,int ySIZE=struct _SIZEint cx,int cy,Windows 新增数据类型:结构体,*,Windows API,北方软件学院-Windows人机交互程序设计,什么是API*,API(Application Programming Interface,应用程序编程接口)是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。,北方软件学院-Windows人机交互程序设计,API 作用,操作系统提供给开发者的应用程序编程接口。用户使用该接口可以调动操作系统资源,实现自己的应用程序的功能。使用时:必须包含Windows.h头文件。,北方软件学院-Windows人机交互程序设计,API 举例,int MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);作用:弹出警告框。MessageBox(0,”你好”,”警告”,MB_OK);,*,北方软件学院-Windows人机交互程序设计,上机实验,上机目标:MessageBox函数练习。请设计实现一个基于控制台的计算器程序,该程序能够实现加、减、乘、除四则运算。要求在运算过程中错误处理的时候使用MessageBox函数输出错误。如:除数为0的时候,弹出警告。输入运算式不合理的时候,弹出警告。输入要求:能够输入类似“1+3+5*9”的运算式,当输入=的时候输出式子的计算结果。需要和我进行交流的同学可以将你设计的程序发送到.,你们是最精彩的!,谢谢!,