windows程序复习资料

上传人:宝路 文档编号:5452541 上传时间:2017-08-30 格式:DOC 页数:18 大小:94KB
返回 下载 相关 举报
windows程序复习资料_第1页
第1页 / 共18页
windows程序复习资料_第2页
第2页 / 共18页
windows程序复习资料_第3页
第3页 / 共18页
windows程序复习资料_第4页
第4页 / 共18页
windows程序复习资料_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《windows程序复习资料》由会员分享,可在线阅读,更多相关《windows程序复习资料(18页珍藏版)》请在金锄头文库上搜索。

1、1.1 基本概念Visual C:微软公司出品的 C语言开发工具,允许程序员使用 C语言以可视化的编程方式快速开发基于 Windows 平台的系统软件及应用软件。Windows API:Windows 操作系统的应用编程接口,它是操作系统的一部分,由数千个函数组成,程序员可以在自己的程序里调用 API 函数以利用操作系统内置的一些功能。MFC:微软基础类库。依据面向对象编程思想将 API 函数封装在几百个 C+类中,使程序员可以利用面向对象的方法开发程序。C语言标准:C语言是一种通用的计算机编程语言,国际标准化组织已经对其语法和基本类库进行了标准化,很多公司依据 C语言标准推出了自己的 C开发

2、工具,Visual C只是其中一种。1、Windows 应用程序的界面窗口:屏幕上的一块区域,是应用程序的主要输入输出部件,每个应用程序都拥有一个或多个窗口,开发 Windows 程序的第一步就是建立窗口。窗口有两种存在形式:打开的窗口和图标(最小化的窗口)编写一个 Windows 应用程序,首先应创建一个或多个窗口,随后应用程序的运行过程即是窗口内部、窗口与窗口之间、窗口与系统之间进行数据处理和数据交换的过程 菜单(工具栏):属于某个窗口,用户通过菜单向应用程序发送命令。对话框:一种特殊的窗口,一般用于与用户交互。控件:对话框中可以包含很多种控件,例如按钮、编辑框、列表框、滚动条等。从本质上

3、讲,控件也是窗口。2、开发 Windows 应用程序的方法(1)使用 Windows API 函数:API 函数是 Windows 系统提供的编程接口,大致分为 3 类:窗口管理函数:窗口的创建、移动、修改等。图形设备接口函数:实现在窗口的客户区绘制图形和文本。系统服务函数:实现与操作系统有关的多种功能,例如多线程控制等。(2)使用 MFC 类库:类库中存放了大量预先定义的类,以面向对象的思想封装了 API 函数,程序员可以直接将这些类放到自己的程序里。(3)使用.NET 框架类库(4)使用其它类库(OWL、JAVA SSH 框架)3、Windows 应用程序中的数据类型为了使程序的语义更加丰

4、富,Windows 在 C 语言的基础上自定义了很多种数据类型。例如:HWND 无符号 32 位整数HDC HINSTANCEDWORD unsigned longBOOL boolBYTE unsigned charUINT unsigned int注意:Windows 自定义数据类型的关键字都是大写3、 Windows 应用程序中的数据类型为了使 Windows 编程工作更为直观,微软公司的 SDK 软件包定义了大量的数据类型,如 HWND、HINSTANCE、UINT、HDC 、HPEN、HBRUSH 、HANDLE 等。这些数据类型大部分实际上是 32 位整数。 (参见 P3)首先需要

5、说明的是,这些数据类型不属于标准 C的范围,它们是微软公司自己使用 typedef 关键字定义的,目的是使编程更为方便。另外,微软还定义了大量的符号常量(参见 P4) ,如WM_KEYDOWN、WM_PAINT、WM_CLOSE(消息号)SW_SHOW SW_SHOWMINIMIZE SW_SHOWMAXMIZE(窗口显示方式)这些符号常量对应着一个具体的数值,例如:#define WM_KEYDOWN 0x0100#define WM_KEYUP 0x0101#define WM_MOUSEMOVE 0x0100在程序中当然可以直接使用具体数值,但很不方便,推荐使用符号常量。数据类型和符号常

6、量的定义带来两个结果:一方面使初学者难以入门,觉得 Windows程序晦涩难懂,一方面使程序更易维护和升级。4、匈牙利表示法:一个标识符可由多个英文单词组成,每个英文单词的第一个字母大写。例如:CreateWindow、ShowWindow、GetMessageHWND CreateWindow(LPCTSTR lpClassName, / pointer to registered class nameLPCTSTR lpWindowName, / pointer to window nameDWORD dwStyle, / window styleint x, / horizontal p

7、osition of windowint y, / vertical position of windowint nWidth, / window widthint nHeight, / window heightHWND hWndParent, / handle to parent or owner windowHMENU hMenu, / handle to menu or child-window identifierHANDLE hInstance, / handle to application instanceLPVOID lpParam / pointer to window-c

8、reation data);5、Windows 对象与句柄Windows 对象是内存中构建的程序实体, Windows 预定义了很多数据类型和数据结构,包括窗口、按钮、对话框、画笔、画刷、字体等。我们编程序时要按照预定义的数据结构在内存中构建具体的对象,并使用 API 函数操纵这些对象,最终完成用户要求的功能。句柄(handle)是应用程序中能够唯一表示对象的一个整数数值,通过句柄可访问句柄代表的对象,进行适当的操作。形象地说,句柄是 Windows 世界里对象的身份证号码。如 HWND。 (P3)注意:C对象与 Windows 对象是两个不同的概念,Windows 对象是 C 语言概念上的数

9、据集合,可以理解为 Windows 系统的组成部分。而 C对象属于应用程序,是根据C类构造的数据的集合,并拥有自己的行为- 成员函数。在 MFC 编程中,我们经常将一个 C对象与一个 Windows 对象关联起来,以面向对象的方式进行编程。6、事件驱动与传统的基于 DOS 的程序不同(我们学 C 语言时编制的程序都是传统的程序) 。Windows 程序的运行是由事件驱动的。所谓事件,指用户对计算机的一个操作,如敲击键盘、点击鼠标等。 (注:Windows 内核也可以产生事件。 )开发基于 DOS 的程序时,程序开发者处于完全支配的状态,程序执行流程遵从程序员预先规定的路径。Windows 程序

10、的执行顺序取决于事件发生的顺序。以学生成绩管理系统为例:如果选择增加一名学生,必须将这个操作进行到底,而如果是 Windows 程序,可以在操作中间切换到其他操作。7、消息所谓消息,是对事件的描述。Windows 系统为所有可能的事件都预定义了消息,当事件发生时,Windows 就产生描述该事件的消息,并将其发往适当的应用程序,应用程序收到消息后执行与消息对应的代码段。例如,当用户敲击键盘,便产生了两条消息:WM_KEYDOWN 和 WM_KEYUP,它们分别对应某个键的按下与释放。如果我们在程序中为这两个消息指定了代码段,该代码段将被执行。程序的执行顺序由顺序产生的消息驱动,所以 Windo

11、ws 程序设计的重点是编写处理消息的代码段。程序员可根据消息类型编写程序以处理接收的消息,或者发出其他消息以驱动其他程序,但是不必预先确定消息产生的次序。8、描述消息的 C 结构typedef struct tagMSG / msg HWND hwnd; /Handle to the window whose window procedure receives the message. UINT message; /Specifies the message numberWPARAM wParam; /Specifies additional information about the mes

12、sage. The exact meaning depends on the value of the message memberLPARAM lParam; /Specifies additional information about the message. The exact meaning depends on the value of the message member. DWORD time; /Specifies the time at which the message was posted. POINT pt; /Specifies the cursor positio

13、n, in screen coordinates, when the message was posted MSG; MSG 由 Windows 系统负责生成和填写,每发生一个事件,就会生成一个结构变量,然后放到消息队列中,等待应用程序将其取走。9、消息循环无论是用户消息还是系统消息,消息产生后首先交给操作系统,操作系统将消息暂存在消息队列里。Windows 为每个应用程序建立了消息队列。可以同时为多个应用程序接收和分配消息。由于程序的运行是事件驱动的,所以程序加载后便开始等待消息的到来,根据到来的消息内容执行各种不同的操作。应用程序如何等待消息到来?方法是在程序中编写一个无限循环语句,每一次

14、循环都从自己的消息队列里取出一个消息,经过适当处理后发送给相应的窗口。while(GetMessage(&Msg,NULL,0,0)TranslateMessage(&Msg);DispatchMessage(&Msg); /分发消息,实际上是调用相应窗口函数消息获取函数的原型:BOOL GetMessage(LPMSG lpMsg, / address of structure with messageHWND hWnd, / handle of windowUINT wMsgFilterMin, / first messageUINT wMsgFilterMax / last messag

15、e);注:如果第二个参数为 NULL GetMessage retrieves messages for any window that belongs to the calling thread and thread messages posted to the calling thread via PostThreadMessage. 注: thread messages 表示线程消息,消息分为窗口消息和线程消息Windwos 应用程序具有相对固定的基本结构,由 WinMain 函数和 WndProc 函数构成。WinMain 函数:是所有 Windows 程序的入口,类似 C 语言的 main 函数,完成一系列的定义和初始化工作,并产生消息循环。消息循环是整个程序运行的核心。 WndProc 函数:窗口函数,与应用程序的某个窗口对应,发往窗口的消息由与之对应的窗口函数处理,编程的主要工作是编写 WndProc 函数。注:WinMain 函数的名字是固定的,WndProc 函数的名字可以自己指定,只要将它与某个窗口联系起来即可。#includeLRESULT CALLBACK WndProc();int WINAPI WinMain() /变量声明 /注册窗口类 /创建并显示窗口 /消息循环 LRESULT CALLBACK WndPr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号