VC|MFC学习笔记

1.常见的Afx全域函数

AfxWinInit         被WinMain调用的一个函数,用做MFC GUI程序初始化的一部份

AfxBeginThread     开始一个新的执行线程

AfxEndThread       结束一个旧的执行线程

AfxMessageBox      类似Windows API 函数MessageBox

AfxGetApp          取得application object(CWinApp衍生对象)的指针

AfxGetMainWnd      取得程序主窗口的指针

AfxGetInstance     取得程序的instance handle

AfxRegisterClass   以自定的WNDCLASS 注册窗口类别

 

2.MFC的数据类型

数据类型

意义

BOOL

Boolean值(TRUE or FALSE)

BSTR

32-bit字符指针

BYTE

8-bit整数,无正负号

COLORREF

32-bit数值,代表一个颜色值

DWORD

32-bit整数,无正负号

LONG

32-bit整数,有正负号

LPARAM

32-bit数值,作为窗口函数或callback函数的一个参数

LPCSTR

32-bit指针,指向一个常数字符串

LPSTR

32-bit指针,指向一个字符串

LPCTSTR

32-bit指针,指向一个常数字符串。此字符串可移植到Unicode

LPTSTR

32-bit指针,指向一个字符串。此字符串可移植到Unicode

LPVOID

32-bit指针,指向一个未指定类型的数据

LPRESULT

32-bit数值,作为窗口函数或callback函数的返回值

UINT

Win16中,16-bit无正负号,Win32中,32-bit无正负号

WNDPROC

32-bit

WORD

16-bit整数,无正负号

WPARAM

窗口函数的一个参数,Win16中16bits,Win32中32bits

 

MFC独特的数据类型

数据类型

意义

POSITION

一个数值,代表collection对象(例如数组或链表)中的元素位置,常使用于MFC collection classes

LPCRECT

32-bit指针,指向一个不变的RECT结构

 

 

3. CWndHWnd

HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。   CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。

由HWnd得到CWnd*:

CWnd wnd;

HWnd hWnd;

wnd.Attach(hWnd);

通常一个窗口资源已经和一个CWnd类的对象关联起来的,由于一般来说这个类是自己创建的,所以自然知道怎么得到指向这个类的指针。由CWnd获取HWnd就容易多了,因为它的一个成员m_hWnd就是所对应窗口的句柄。

wnd->m_hWnd;

这里再提一下封装的概念:MFC是对Windows API的封装,使用OOP是对Windows编程的另外一种观点。MFC认为一个程序是一个对象(CWinApp),该对象管理窗口(CView或 CDialog和CFrameWnd)以及该程序所使用的数据(CDocument)。CWnd是CView和CDialog的父类,主要负责管理程序生成的窗口。由于一个程序拥有确定的窗口(Windows为该程序生成需要的窗口),因此在CWnd的构造函数中已经初始化m_hWnd为该窗口句柄。

 

4. <>""

.#include <xxx.h>与#include "xxx.h"的区别:

<>不查找运行时目录,""查找运行时目录。

 

5.强制类型转换

如果CFish从CAnimal派生而来。则可以将鱼的对象转换为CAnimal的对象,而反之则不行。从现实中理解也是正常的,鱼可以是动物,而动物却不是鱼。再如int可以强制转换成char型。而反之则出错。

 

6.NULL0

什么时候用NULL,什么时候用0?

对指针赋值时用NULL,对变量赋值时用0。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值