资源描述:
《windows编程入门》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、windows编程入门2008年07月20日星期日12:25当我们使用着漂亮的界面,方便快捷的应用程序的时候。我们才会发现,以前曾编写的程序是多么的粗糙(TC编写的程序)。简单的界面,16色的显示系统,大大的落后于计算机的发展。简单的说就是杀鸡用牛刀。如何该改变这种情况呢?Microsoft公司在推出windows操作系统的时候给出了简单易行的解决方案。这就是WINDOWS平台API应用程序接口。当然API也是发展的,它从WIN16API发展到了现在普遍使用的WIN32API。只有充分理解API函数功能和用法,才能深入到WINDOWS系统的内部,才能充分挖掘出操作系统给我们提供的强大功能
2、。现在就让我们放弃那DOS应用程序,进入WINDOWS编程的海洋之中吧。要想了解WINDOWSAPI那么我们必须先了解WINDOWS下的程序是如何进行驱动的。同学们可以很清楚的发现到,当你在使用WINDOWS记事本的时候,当键盘输入字符的时候字就会出现在屏幕上。当你移动鼠标的时候,光标就会在屏幕上移动。双击鼠标、单击鼠标就会有相应的事件发生。这些都是由于WINDOWS具有的事件驱动的属性造成的。比如说当你按下键盘的字符键的时候,消息队列就会向程序发送WM_CHAR的消息,假如你所写的程序中含有处理这个消息的函数,程序就会执行它。为了更好的了解WINDOWS编程,这里我必须介绍几个基本的概
3、念:1,句柄:它是WINDOWS编程的基础。一个句柄是指WINDOWS在内存中使用的一个唯一的整数质,是一个4个字节长的数值,用于标识应用程序中不同对象和相同对象的不同实例。这里我列出几种WINDOWS常用的句柄:HWND:标示窗口句柄HINSTANCE:标示当前实例句柄HCOURSOR:标示光标句柄HFONT:标示字体句柄HPEN:标示画笔句柄HBRUSH:标示画刷句柄HDC:标示设备环境句柄HB99vMP:标示位图句柄HICON:标示图标句柄HMENU:标示菜单句柄HFILE:标示文件句柄由于WINDOWS应用程序利用WINDOWS消息来与其它的WINDOWS应用程序及WINDOWS
4、系统进行消息交换。所以消息是一个十分重要的对象它的结构如下。typedefstrUCt{HWNDhwnd;//检索消息的窗口句柄UN99vmessage;//代表一个消息的消息质WPARAMwParam;//消息附加信息的字参数LPARAMlParam;//消息附加信息的长字参数DWordtime;//消息入队时间POINTpt;//消息发送时鼠标的位置point.x;point.y;}tagMSG;2,消息:VC++中消息都用前缀标示消息所属的分类,下面我来介绍一下这些前缀BM表示按钮控制消息CB表示组合框控制消息DM表示默认下压式按钮控制消息EM表示编辑控制消息LB表示列表框控制消息
5、SBM表示滚动条控制消息WM表示窗口消息现在我来对系统常用的一些消息进行说明:1,WM_LBUTTONDOWN:单击鼠标左键时产生2,WM_LBUTTONUP:放开鼠标左键时产生3,WM_RBUTTONUP:放开鼠标右键时产生4,WM_LBUTTONBLCLK:双击鼠标左键时产生5,WM_RBUTTONBLCLK:双击鼠标右键时产生6,WM_KEYDOWN:按下了一个非系统键时产生的消息7,WM_CHAR:同上8,WM_Create:由CreateWindow函数发出的消息9,WM_DESTROY:消除窗口时发出的消息10,WM_QU99v:退出程序时发送的消息11,WM_PAINT:做
6、任何移动操作时发出的消息介绍了以上的这些基础入门知识,我们就可以简单的了解一下WINDOWSAPI程序的组成基本结构。它是由入口函数WinMain和窗口函数基本框架,并包含各种数据类型、数据结构与函数等应用组建组成的。其中入口函数WinMain和窗口函数是WINDOWS应用程序的主体。一个基本的WinMain函数应该具有以下的功能:1,注册窗口类,建立窗口及执行其他必要的初始化工作2,进入消息循环,根据从应用程序消息队列接受的消息,调用相应的处理过程。3,当消息循环检索到WM_QU99v消息时中止程序运行WinMain函数有三个基本组成部分:函数说明、初始化和消息循环。(1)函数说明in
7、tWINAPIWinMain(HINSTANCEhThisInst,//应用程序当前实例句柄HINSTANCEhPrevInst,//应用程序其它实例句柄LPSTRlpszCmdLine,//指向程序命令行参数的指针intnCmdShow//应用程序开始执行时窗口显示方式的整数值标示)(2)初始化初始化包括窗口类的定义、注册、创建窗口实例和显示窗口四部分。(在以后的程序中我将具体的介绍它们具体的实现方法)(3)消息循环WINDOWS