学了一段Win32SDK应用程序以后,因为种种杂七杂八的事情,让windows程序设计的内容停滞了很长一段时间。但是我今天还是鼓足了勇气,继续开始后面的内容。(不过后面的笔记不再是跟着杨力祥老师的上课内容了,因为他对MFC的讲解似乎课程剩下的不是很足,所以我换了孙鑫老师的听)。
咱们直接从第三节课讲起吧。第一节课讲的是用Win32SDK应用程序写“hello world”,我们之前已经做过很多遍了,这里只简要的回顾一下整个程序的脉络:
WinMain函数是整个程序的入口,相当于C语言中的main函数,在WinMain中,我们完成了一下几个重要的事情:设计窗口类,注册窗口类,创建窗口,显示窗口,更新窗口,进入消息循环。在设置窗口类中,指明消息处理函数,并把这个重要的信息在注册窗口时告诉操作系统,而在消息循环,每当我的应用程序收到了消息,都会把这个消息投递到这个应用程序的消息队列中,然后程序依次从中取走消息,并把消息告诉操作系统,操作系统调用消息处理函数来响应这些消息。
首先,个人觉得windows应用程序跟dos下的控制台应用程序最大的区别有两点。第一点是表象的:控制台应用程序是“黑屏的”,而windows应用程序是基于“窗口的”;第二点是内在的,控制台应用程序的核心内容是与操作系统无关的(虽然我们总会频繁的使用printf是得能从屏幕上显示打印结果);而windows应用程序是跟操作系统密切相关的。
第二讲主要是复习C++里面的一些基本知识:类、继承、派生、多态、重载等等。这里就不提了。
下面我们言归正传,开始MFC的学习。MFC是微软基础类库,它是对我们前面使用的windowsAPI函数,使用面向对象的方法进行了封装,它大大的简化了应用程序的开发过程。(顺便吐槽几句,这个封装其实做的并不是非常出色,使用了大量的宏,而C++程序员是非常讨厌宏的,但是总而言之,用起来还不错,尤其是使用AppWizard开发向导以后)。
这节课的主要目的,就是在于向读者展示:尽管MFC对windowsAPI进行了封装,但是它的程序在执行的过程中,总是要遵循API里面设计窗口类,注册窗口类,创建窗口,显示窗口,更新窗口,进入消息循环的步骤。
首先,我们新建一个单文档的MFC应用程序,对于其他内容保持默认设定,然后我们不
咱们直接从第三节课讲起吧。第一节课讲的是用Win32SDK应用程序写“hello world”,我们之前已经做过很多遍了,这里只简要的回顾一下整个程序的脉络:
WinMain函数是整个程序的入口,相当于C语言中的main函数,在WinMain中,我们完成了一下几个重要的事情:设计窗口类,注册窗口类,创建窗口,显示窗口,更新窗口,进入消息循环。在设置窗口类中,指明消息处理函数,并把这个重要的信息在注册窗口时告诉操作系统,而在消息循环,每当我的应用程序收到了消息,都会把这个消息投递到这个应用程序的消息队列中,然后程序依次从中取走消息,并把消息告诉操作系统,操作系统调用消息处理函数来响应这些消息。
首先,个人觉得windows应用程序跟dos下的控制台应用程序最大的区别有两点。第一点是表象的:控制台应用程序是“黑屏的”,而windows应用程序是基于“窗口的”;第二点是内在的,控制台应用程序的核心内容是与操作系统无关的(虽然我们总会频繁的使用printf是得能从屏幕上显示打印结果);而windows应用程序是跟操作系统密切相关的。
第二讲主要是复习C++里面的一些基本知识:类、继承、派生、多态、重载等等。这里就不提了。
下面我们言归正传,开始MFC的学习。MFC是微软基础类库,它是对我们前面使用的windowsAPI函数,使用面向对象的方法进行了封装,它大大的简化了应用程序的开发过程。(顺便吐槽几句,这个封装其实做的并不是非常出色,使用了大量的宏,而C++程序员是非常讨厌宏的,但是总而言之,用起来还不错,尤其是使用AppWizard开发向导以后)。
这节课的主要目的,就是在于向读者展示:尽管MFC对windowsAPI进行了封装,但是它的程序在执行的过程中,总是要遵循API里面设计窗口类,注册窗口类,创建窗口,显示窗口,更新窗口,进入消息循环的步骤。
首先,我们新建一个单文档的MFC应用程序,对于其他内容保持默认设定,然后我们不