分享

VC|MFC学习笔记六: 几个小知识(I)--全域函数,数据类型,CWnd和HWnd等

 昵称4993368 2010-12-08
 

1.常见的Afx全域函数

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

AfxBeginThread     开始一个新的执行线程

AfxEndThread       结束一个旧的执行线程

AfxMessageBox      类似Windows API 函数MessageBox

AfxGetApp          取得application objectCWinApp衍生对象)的指针

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中,16bit无正负号,Win32中,32bit无正负号

WNDPROC

32-bit

WORD

16bit整数,无正负号

WPARAM

窗口函数的一个参数,Win1616bitsWin3232bits

MFC独特的数据类型

数据类型

意义

POSITION

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

LPCRECT

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

3. CWndHWnd

HWNDWindows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。   CWndMFC类库中所有窗口类的基类。微软在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 CDialogCFrameWnd)以及该程序所使用的数据(CDocument)CWndCViewCDialog的父类,主要负责管理程序生成的窗口。由于一个程序拥有确定的窗口(Windows为该程序生成需要的窗口),因此在CWnd的构造函数中已经初始化m_hWnd为该窗口句柄。

4. <>""

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

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

5.强制类型转换

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

6.NULL0

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

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

所有内容来自互联网

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多