windows_编程基础.pdf

上传人:asd****56 文档编号:70331110 上传时间:2023-01-19 格式:PDF 页数:4 大小:110.50KB
返回 下载 相关 举报
windows_编程基础.pdf_第1页
第1页 / 共4页
windows_编程基础.pdf_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《windows_编程基础.pdf》由会员分享,可在线阅读,更多相关《windows_编程基础.pdf(4页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、本人在网上发现的一篇基础文章,扫扫盲!高手就不用看了!呵呵1、大致说来 windows 编程有两种方法:a.windwos c 方式(SDK),SDK 编程就是直接调用 windows 的 API 进行编程;b.c+方式:即对 SDK 函数进行包装,如 VC 的 MFC,BCB 的 OWL 等。MFC 把这些 API 封闭起来,共有一百多个类组成.2、API,全称 application program interface,意思是应用程序编程接口(说起 API 并不仅仅指 windows 而言,windows 支持的 API 叫 winapi)。winapi 就是应用程序和 windows 之

2、间通讯的一个编程界面。windows 提供了上千个 API 函数,以方便程序员来编写应用程序。3、WinSDK 程序设计就是 API 方式的 windows 程序设计。SDK,全称 Software Developers Kit,意思是软件开发工具箱。4、MFC,全称 Microsoft Foundation Classes,伪软把 WinAPI 进行封装的类库。它是一个类的集合,通过覆盖WinAPI,为编程提供了一个面向对象的界面。它使 windows 程序员能够利用 C+面象对象的特性进行编程,类似 BCB 的 OWL,Delphi 的 VCL 组件。它把那些进行 SDK 编程时最繁琐的部

3、分提供给程序员,使之专注于功能的实现。你不妨把它想象成类似 TC 提供的函数库吧。5、dos 下的 C 编程的 main()一样,windows 下的入口是 WinMain()函数。6、WinMain()所起的作用:初始化,展示,销毁应用程序等。第一个参数:应用程序的当前实例句柄。第二个参数:应用程序的前一个实例句柄,别管它,对于 Win32 位而言,它一般是 NULL.第三个参数:指向任何传给程序的命令行参数。PSTR 代表指向字符串的指针。第四个参数:它告诉应用程序如何初始化窗口,如最大化,最小化等状态。7、句柄(handle):在标准 C 库中句柄用来对文件输入输出。在 Windows

4、环境中,句柄是用来标识项目的,这些项目包括:*.模块(module)*.任务(task)*.实例(instance)*.文件(file)*.内存块(block of memory)*.菜单(menu)*.控制(control)*.字体(font)*.资源(resource),包括图标(icon),光标(cursor),字符串(string)等*.GDI 对象(GDI object),包括位图(bitmap),画刷(brush),元文件(metafile),调色板(palette),画 笔(pen),区域(region),以及设备描述表(device context)。WINDOWS 程序中并不

5、是用物理地址来标识一个内存块,文件,任务或动态装入模块的,相反的,WINDOWS API给这些项目分配确定的句柄,并将句柄返回给应用程序,然后通过句柄来进行操作。窗口句柄:系统通过窗口句柄来在整个系统中唯一标识一个窗口,发送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口过程,所以用户的输入就会被正确的处理。8、所有的命名采用了匈牙利表示法。如消息的前缀使用 msg.句柄使用 h.函数使用 fn 等。9、MainFrm.cpp、MainFrm.h:这两个文件将从 CFrameWnd(SDI 应用程序)或 CMDIFrameWnd(MDI 应用程序)派生 CMa

6、inFrame 类。如果在AppWizard 的 Application Options 页(6 步中的第 4 步)中选择了对应的可选项的话,CMainFrame 类将处理工具条按钮和状态条的创建。MAINFRM.CPP 文件还含有 MFC 应用程序提供的默认工具条按钮的对象 ID叫做buttons 数组。10、DOS 程序主要使用顺序的,过程驱动的程序设计方法。顺序的,过程驱动的程序有一个明显的开始,明显的过程及一个明显的结束,因此程序能直接控制程序事件或过程的顺序。虽然在顺序的过程驱动的程序中也有很多处理异常的方法,但这样的异常处理也仍然是顺序的,过程驱动的结构。11、Windows 的驱

7、动方式是事件驱动,就是不由事件的顺序来控制,而是由事件的发生来控制,所有的事件是无序的。做为一个程序员,在你编写程序时,你并不知道用户先按哪个按纽,也不知道程序先触发哪个消息。你的任务就是对正在开发的应用程序要发出或要接收的消息进行排序和管理。事件驱动程序设计是密切围绕消息的产生与处理而展开的,一条消息是关于发生的事件的消息。12、Windows 程序则至少两个主程序,一个是 WinMain(),int WINAPI WinMain(HINSTANCE hInstance,/handle to current instanceHINSTANCE hPrevInstance,/handle to

8、 previous instanceLPSTR lpCmdLine,/command lineint nCmdShow/show state);另一个是窗口过程函数 WndProc,它的函数原型为:long FAR PASCAL WndProc(HWND hWnd,WORD message,WORD wParam,LONG lParam);13、窗口函数与回调函数:在 Windows 中,应用程序通过要求 Windows 完成指定操作,而承担这项通信任务的 API 函数就是 Windows 的相应窗口函数 WndProc。应用程序不直接调用任何窗口函数,而是等待 Windows 调用窗口函数,

9、请求完成任务或返回信息。为保证 Windows 调用这个窗口函数,这个函数必须先向 Windows 登记,然后在 Windows 实施相应操作时回调,所以窗口函数又称为回调函数。WndProc 是一个主回调函数,Windows 至少有一个回调函数。典型的回调函数有窗口过程、对话框过程和钩子函数。实际上,也许有不止一个的窗口过程。例如,每一个不同的窗口类都有一个与之相对应的窗口过程。15、实例:在 Windows 中,能多次同时运行同一个应用程序,即运行多个副本,每个副本叫做一个“实例”。16、C runtime 函数库:就跟它的名字一样,运行类型信息主要有 COject 类和 CRuntime

10、Class 类来实现,用来存贮 COject 类和派生类的运行类型信息,1.类的基本情况:如类的名字,存贮空间大小,用于运行类的类型确定.2.ms 在 C+的标准上,添加动态创建的类对象功能,也就是时时提到的动态创建3.串行化处理.The OS does not know main(),so C-runtime is first called and transfer control to mainit also provide library for common usage,such as math functions17、WinMain()函数的调用约定是 PASCAL。在这里 PASC

11、AL 是一个调用约定,由于这种方式最早由 PASCAL 采用,所以这么叫。在 MSDN 中的 C+Language Reference 中,Calling Conventions 这一章都是讲调用约定的。约定:微软重定义了许多约定类型,为的是可以让代码更容易跨平台或者跨编译器。其实,调用约定要解决两个问题,都是针对堆栈操作:1。参数传递的顺序(本质是压栈的顺序)2。谁负责平栈(调用者还是调用对象)一个函数的声明、定义和实现中的调用方式一般都一致。WINAPI 标识符的定义是:#define WINAPI _stdcall,_stdcall 指 Window 调用函数的一种方式,也就是如何在堆中

12、存取函数参数的方式。许多 Windows Api 函数调用声明为_stdcall 方式。18、用位的“或”操作(操作符“|”)把若干个常数组合起来控制消息窗口显示的按钮和图标等。19、在 Windows 应用程序中,每一个窗口都必须从属于一个窗口类,窗口类定义了窗口所具有的属性,如它的样式、图标、鼠标指针、菜单名称及窗口过程名等。窗口种类是定义窗口属性的模板,这些属性包括窗口式样,鼠标形状,菜单等等,窗口种类也指定处理该类中所有窗口消息的窗口函数.只有先建立窗口种类,才能根据窗口种类来创建 Windows 应用程序的一个或多个窗口.创建窗口时,还可以指定窗口独有的附加特性.窗口种类简称窗口类,

13、窗口类不能重名.在建立窗口类后,必须向Windows 登记.建立窗口类就是用 WNDCLASS 结构定义一个结构变量.20、Visual C+提供 Alt+F8 功能键,进行文件规格化,根据周围的代码行,正确缩进选定的代码行。常使用该按键可使得文件保持规格化(注,Alt+F8 功能键对连续两个 CASE 语句则会发生处理错误,不能规格化)。21、消息:一个消息由一个消息名称(UINT),和两个参数(WPARAM,LPARAM)。当用户进行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。22、一个典型的应用程序应该活动在称为“框架窗口”中。一个框架窗口是一个全功能的主窗口,用户可以改

14、变尺寸、最小化、最大化等。23、消息机制:系统将会维护一个或多个消息队列,所有产生的消息都回被放入或是插入队列中。系统会在队列中取出每一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的程序的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统所以 Windows 可以同时进行多个任务。24、预编译头文件:VC+程序一般包含的头文件都比较复杂,如果每次都逐行分析可能会花很多时间,所以 VC+默认设置是第一次编译时分析所有头文件,生成.pch 文件,这个文件很大,但以后每次编译时就可以节省很多

15、时间。如果删除了这个文件,下次编译时 VC+会自动生成它。StdAfx.h 是每个 MFC 程序的类中必须包括的文件,它一般由 AppWizard 自动生成,包括编译 MFC 类所必须的定义。25、Windows 支持两种类型的对话框:模式和无模式对话框。模式对话框一旦出现在屏幕上,只有当它退出时,屏幕上该应用程序的其余部分才能响应。无模式对话框出现在屏幕上时,程序的其余部分也可以作出响应,它就象浮动在上面一样。26、单文档界面(SDI),只有一个框架窗口。MDI 系统允许用户在同一应用程序中同时可以查看多个文档。27、第一,MFC 中的大部分类都是从基类 CObject 中继承下来的。CObject 实现了一些重要的特性,包括动态类信息、动态创建、对象序列化、对程序调试的支持,等等。该类包含有大部分 MFC 类所通用的数据成员和成员函数。所有从 CObject 派生的类都将具备或者可以具备 CObject 所拥有的特性。第二,CWinApp 类是在你建立应用程序是要用到的,并且任何程序中都只用一次。CWnd 类汇集了 Windows 中的所有通用特性、对话框和控制。CFrameWnd 类是从 CWnd 继承来的,并实现了标准的框架应用程序。CDialog 别处理无模式和有模式两种类型的对话框。CView 是用于让用户通过窗口来访问文档。CCmdTarget 通过封装一些属性和

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com