MFC:Learning VC++深入详解


学习 《VC++深入详解》

持续更新中...


Windows程序设计:不同于DOS,事件驱动,基于消息

事件:鼠标或键盘动作

消息

typedef struct tagMSG{
    HWND hwnd;
    UINT message;
    WPARAM wParam;
    LPARAM lPram;
    DWORD time;
    POINT pt
}MSG;

WinMain函数
int WINAPI WinMain(
	HINSTANCE hInstance,   //handel to current instance
	HINSTANCE hPreInstance,//handle to previous instance
	LPSTR lpCmdLine,       //command line
	int nCmdShow           //show state
	);


窗口的创建步骤

1.设计一个窗口类

typedef struct _WNDCLASS{
    UINT style;
    WNDPROC lpfnWndProc;
    int cbClsExtra;
    HANDLE hInstance;
    HICON hIcon;
    HCURSOR hCursor;
    HBRUSH hbrBackgound;
    LPCTSTR lpszMenuName;
    LPCTSTR lpszClassName;
}WNDCLASS;

2.注册窗口类

ATOM RegisterClass(CONST WNDCLASS *lpWndClass);

3.创建窗口

HWND CreateWindow(
    LPCTSTR lpClassName,    //pointer to registered class name
    LPCTSTR lpWindowName,   //pointer to window name
    DWORD dwStyle,          //window style
    int  x,                 //horizontal position of window
    int  y,                 //vertical position of window
    int nWidth,             //window width
    int nHeight,            //window height
    HWND hWndParent,        //handle to parent or owner window
    HMENU hMenu,            //handle to menu or child-window identifier
    HANDLE hInstance,       //handle to application instance
    LPVOID lpParam          //pointer to window-creation data
);


4.显示及更新窗口

显示窗口:

BOOL ShowWindow(  
    HWND hWnd,     //handle to window  
    int nCmdShow   //show state


关于头文件.h

< >和" "的区别:编译器在搜索头文件时的顺序不同,

                          < >表示从系统目录下开始搜索,然后再搜索PATH环境变量所列出的目录,不搜索当前目录;

                           " "表示从当前目录搜索,然后是系统目录和PATH中的目录,可以加快搜索速度。


宏的定义:多次包含同一个头文件,解决头文件的重复包含问题,可以使用条件预处理指令,修改头文件如以下形式

#ifndef XXX_H_H

#define XXX_H_H

.......

#endif





侯捷的<深入浅出MFC>相信大家都已经很熟悉了,论坛上也有很多介绍,这里我就不多说了。 而李久进的<MFC深入浅出>,听说的人可能就少得多。原因听说是这本书当时没有怎么宣传,而自从1999年第1版后,似乎也没有重印过,现在市面上根本找不到,所以大部分人都不知道。我手里现在恰好有一本,是从图书馆借的。这本书全名为<MFC深入浅出——从MFC设计到MFC编程>李久进编著,华中理工大学出版。此书极佳! 和侯捷那本书比起来,这两本书的风格很不一样。侯捷的那书的特点是剖了很多MFC的源代码,喜欢用代码说明问题,包括自己模拟MFC的方面实现一个类似的构架(什么什么仿真),而李久进的那本书不是这样,他用了很多的图表,具体介绍了MFC干很多事的时候的具体过程,比如MFC创建的时候及退出的时候具体的调用函数的过程(具体函数的调用关系)。这觉得这部分极为重要,这也就是我推崇李久进这本书的原因。而侯捷的那本书这部分内容非常少。这想,这可能是由于侯捷觉得,这部分内容不需要单独介绍,大家自己剖代码就可以解决问题。这确实不错,李久进的那本书中的内容如果自己剖MFC的源代码,内容都可以找到。但这是一个非常花工夫的事情,更不要说MFC的实际代码中要考虑各种各样的问题(保护,检查),代码的思路不可能非常清楚,这无疑增加了读代码的难度。和自己花时间一点一点剖MFC代码相比,看看这本只有266页的书无疑有效得多。 从内容上来讲,侯捷的那本<深入浅出MFC>更关心的是MFC的设计,或者说更像是想知道MFC是如何做到它所做到的东西的——从目的上说,是希望在了解了MFC的实现方法以后,自己也做出一个类似的东西来(你看别人的源代码的时候,就是这个目的)。而李久进的那本<MFC深入浅出>更关心的是MFC的使用,看完这本书,当你需要做某件事的时候,你会很清楚MFC是在哪个函数中完成这个工作的,你知道应该重载哪个函数,知道如何实现你的功能。但看完侯捷的那本书,你只是学到了方法,而按照侯捷的方法,你可能还得用半年时间才能剖完相关的代码,学到李久进的那本书中所提到的东西。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值