VC语言

本类阅读TOP10

·VC++ 学习笔记(二)
·用Visual C++打造IE浏览器(1)
·每个开发人员现在应该下载的十种必备工具
·教你用VC6做QQ对对碰外挂程序
·Netmsg 局域网聊天程序
·Windows消息大全
·VC++下使用ADO编写数据库程序
·VC++学习笔记(四)
·非法探取密码的原理及其防范
·怎样在VC++中访问、修改注册表

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
第一章 Hello,MFC

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

首先是几个名词解释:
    SDK - Software Development Kit
    MFC - Microsoft Foundation Class

    传统的C程序从第一行带有main函数的语句开始执行,到main函数返回值结束。在首尾行之间,函数main会调用其它函数,而这些函数可能会调用更多的函数,但始终是程序而不是操作系统决定何时调用哪个函数。
    Windows函数不是这么执行的,它采用了事件驱动的模型,应用程序通过处理操作系统发来的消息来响应事件。具体模型见书上图1-1。
    消息伴随的是4个入口参数:消息所指窗口的句柄、一个消息ID和两个名为wParam和lParam的32位参数。窗口句柄是一个唯一的标识窗口的32位值。消息ID是标识消息类型的一个数值,比如:WM_CREATE、WM_PAINT等。
    简单Windows程序的执行顺序:
    Winmain函数首先调用API函数RegisterClass来注册一个WNDCLASS结构的窗口类,然后调用CreateWindow函数来生成窗口,接着调用ShowWindow(如果生成时使用了WS_VISIBLE则不用)和UpdateWindow函数来让其显示出来并立即刷新。
    接下来进入消息循环,反复的调用GetMessage、TranslateMessage和DispatchMessage这3个函数。GetMessage函数从消息队列中获得出口的结构为MSG的消息并将其从队列中删除。TranslateMessage函数将键盘消息转换为更容易使用的WM_CHAR消息。DispatchMessage函数则将消息发送到窗口的消息处理(回调)函数去。
    消息处理(回调)函数:在WNDCLASS中有个lpfnWndProc成员,指向了消息处理函数的地址。所谓回调函数就是指该函数是不经过用户手动调用的,操作系统根据WNDCLASS的lpfnWndProc成员内容找到该函数并自动调用以进行消息处理。该函数一般由一个switch构成,检查并处理不同的消息。在最后未手动处理的消息要通过调用DefWindowProc函数来进行默认处理。
    当窗体收到WM_DESTROY消息时,应该调用PostQuitMessage函数,使GetMessage函数返回false以退出消息循环结束程序,否则窗体关了,而程序还在执行,这是不正常的。




相关文章

相关软件