Win32 sdk学习感悟(1.1)------基础
在学习win32 sdk编程之前,相信你已经会用c语言在dos下编程了。Api是windos封装的接口函数,我们要学会用它编程是一个漫长的过程,但是你直接去学习mfc,你会更加吃力。所以个人感觉在学mfc之前学习一下win32编程是为mfc打基础,这样以后学习mfc会相对容易的多。我写这**的目的只是想和大家一起进步,分享一下我对win32编程的理解,也是提高自己能力的一种方法吧。我尽我所能,希望能把我所知道的用最浅显直观的文字表达出来。所以有不当之处请原谅并希望你能指出。谢谢阅读。(同时说一句真心话,当你拿者一本书读不懂的时候,请你**下去。还不懂就反复看。或许你看的似懂非懂,那么过些天了,你再拿出来认真仔细的看。相信你在原来的基础上又有新的理解,那么你才会有所提高。) 一.。应用程序的运行机制
应用程序运行机制——不要被它给吓住了,我们在进行win32 sdk编程的时候,这是我们需要了解的一个重要问题,要不然怎么写出我们自己的应用程序了。显然应用程序运行机制就是告诉我们一个应用程序是怎样运行在系统里的。说得形象一些就是一个应用程序在系统里怎样“生存”。打个比方,我们人就是一个应用程序,我的生活的这个社会就是系统,我们要在这个社会里生存就要挣钱、工作、休息等。所以,你现在应该知道应用程序运行机制是个怎样的概念了吧。 上面说人和社会相当与应用程序和系统(这是个形象的比喻,便于你更好理解),我们要挣钱就要找到工作,有了工作我们就要有足够的时间去休息,这些都是有联系的,你会问:那应用程序和系统有什么联系呢? 好了,下面我们就来说说应用程序和系统的联系。 我们知道应用程序的运行是要在操作系统下才可以的(除非你写的程序是最底层的)。应用程序运行的时候,操作系统会自动为这个应用程序服务(当然有些需要我们自己写代码来实现,比如下面说的消息事件),这里所谓的服务是我们看不见的,也就是我们要了解的程序运行机制。比如我们的应用程序在点击鼠标左键会弹出一菜单,要实现这一过程那么我们写的应用程序必须向系统发送一个消息告诉它我们点了鼠标左键,然后再做什么事情等类似的一些事情(也就是事件)。在写程序时候我们只是用代码来完成这些事情,其他的工作都是系统自己干,所以我们不必很关心,只要把一些事情用代码表示出来就可以了。 好了,上面我只是让你对应用程序在系统里有个初步的了解,知道是怎么一会事,下面让我们来进一步了解一下。 你知道应用程序在系统里运行做的第一件事是什么吗?第二件事呢?第三 等等。一个应用程序出现在屏幕上,展现在我们眼前只是一瞬间,但是在我们win32 sdk下编写程序的时候。就不是一瞬间的事情了。那么要编写一个程序窗口有那些过程呢?或许你现在一定不知道,或许你看过其他的编程**,知道一点点但是又感觉这些知识点很乱,似懂非懂的感觉。不怕,往下看,我将会为你把思路理清晰。让你知道怎么回事 我们知道开发一个应用程序需要很多的代码。在这么多代码里有一个代码是最最重要的。那就是WinMain()函数。看上去它和c++在dos下编程里的Main()函数差不多,其实它们的作用是一样的。是一个应用程序的入口点。所以说它重要。(一个应用程序什么函数代码都可以不要,但是唯一这个函数一定要。)
(解释什么是入口点:应用程序运行时系统会自动调用WinMain()这个函数,目的就是传递参数给这个函数。那么这个函数的功能是什么呢?说得简单易懂点就是一个告诉系统从这个函数开始读代码。上面不是说一个应用程序有许多代码吗?那么多代码系统怎么知道要从哪里读起走了?那么就是从WinMain()这个函数了。再打个比方,我们要上2楼,在1楼和2楼之间有许多道门,但是唯独一楼只有一道与外边相通的门。所以我们要上2楼,只有走这道门,所以这道门就叫2楼的入口点。所以WinMain()这个函数是应用程序的入口点。) 好了,现在知道系统从哪里读代码了,接下来我们就可以放心的写更多的代码让系统自己去读了。(注意:这里我说的系统读代码其实是让你更直观的去理解这些知识,在大脑里产生这个过程。我们都知道,我们写的代码在编译器编译的时候都转换成了二进制码。这里只是做个解释,以免读者误会,可以不必在意)
二.一个应用程序的窗口
我们做一件事要有先后主次之分,同样要让一程序运行也是的。我们先从创建一窗口说起,因为再好的应用程序都需要通过窗口直观的显示与用户交互,这样才能让用户更简洁方便的使用程序完成想要完成的事情。 我们要修一座楼房,第一步就是要先设计这个楼房的结构,要画平面图。创建一个窗口也是如此,所以要设计一个窗口。
当我们设计好楼房的平面图后不能立即就修楼房,因为还要到相关政府部门去申请,请求批准。那么我们设计好一个窗口后也不能立即的就显示出这个窗口了,要向系统注册我们所设计的这个窗口,目的是告诉系统我们要开始创建一个应用程序窗口了。
在我们向系统注册了我们设计的窗口后,我们就可以正式的创建窗口。至此我们才能在屏幕上显示我们创建的这个窗口。 总的来说你现在已经很清晰的知道了在win32 sdk下我们用c语言是怎么样才能创建一个窗口的了。在给大家理清一下思路:
我们要创建一个窗口就需要下面这些步骤: 1. 设计一个窗口类
2. 注册这个窗口类
3. 显示并随时更新这个窗口 好了,现在你应该对win32 sdk编程有了一个更清晰的认识了。至少你应该知道一些在win32 sdk编程下的一些最最基本的知识。可以说你如果懂了我上面说的每一句话,那么你就有入门的感觉了。至于窗口如何发送消息等,还有程序入口函数、创建窗口所用的这些函数的具体用法,我会在后面陆续的说明。你也不要埋怨看了这么多文字连一个函数都没有讲到,感觉没学到什么。别急,静下心来体会一下上面这些文字,一定会给你带来收获的。编程这东西不能速成,也没有速成的办法,那是自己慢慢积累起来的东西,所以要多想、多练。其实上面所说的都是应该掌握的,因为那些就是一些理论知识,虽说我能力有限,但相信这对初学的你有所帮助,我的目的也就达到了。有了这些知识你学习win32 编程就很轻松,思路也很清晰,不会一头雾水。你要相信我也是过来人,我只是想竟我所能,把我当初学的、认识到的、怎样理解的呈现出来和大家一起分享。要是有不当之处还请读者指教,一起探讨。共同努力。
|