MFC学习笔记-界面00、动态数组

1,DECLARE_DYNCREATE( class_name )
参数:
class_name 类的实际名字(不用引号括起来)。
说明:
使用DECLARE_DYNCREATE宏可以使每个CObject的派生类的对象具有运行时动态创建的能力
MTestClass.h

class CMTestClass : public CObject
{
       DECLARE_DYNCREATE(CMTestClass)
public:
       CMTestClass();
       virtual ~CMTestClass();
}

MTestClass.cpp

#include "MTestClass.h"

IMPLEMENT_DYNCREATE(CMTestClass,CObject)
CMTestClass::CMTestClass()
{
}

CMTestClass::~CMTestClass()
{
}

2,GetTickCount()
说明:
GetTickCount返回(retrieve)从操作系统启动所经过(elapsed)的毫秒数,它的返回值是DWORD

3,AfxGetApp()
获取当前的App

(class_name )* pApp = (class_name *)AfxGetApp();

4,直接可以使用枚举的值,枚举定义最后必须有分号结束(C#无)

enum Test
{
        ENUM_TEST1=0,
        ENUM_TEST2,
        ENUM_TEST3,
};
UINT i=ENUM_TEST2;//i=1;
//C# enum Test
//C# {
//C#    ENUM_TEST1=0,
//C#    ENUM_TEST2,
//C#    ENUM_TEST3,
//C# }
//C# uint i=(uint)Test.ENUM_TEST2;i=1;

5,CArray < TYPE,ARG_TYPE >
MFC使用CArray类定义动态数组
参数说明:
TYPE 参数来指定数组元素的类型
ARG_TYPE 参数来指定函数参数的类型。例如CArray类的Add成员函数采用ARG_TYPE参数

6,Vector< TYPE>
C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组

#include <vector>
using namespace std;
vector<int> m_vector;

7,List< TYPE>
C++使用,将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢

#include <list>
using namespace std;
list<int> m_list;

8,map < Key,Value >
C++中使用,提供一个键值对容器,注:参考CArray理解参数意思
注:有点类似C#中的字典Dictionary < Type1,Type2 >

#include <map>
using namespace std;
map<int,string> m_map;

9,CMap< KEY,ARG_KEY,VALUE,ARG_VALUE >
MFC提供使用类似字典的键值容器

CMapWordToPtr 保存void指针,关键字为WORD
CMapPtrToWord 保存WORD,关键字为void指针
CMapPtrToPtr 保存void指针,关键字为其它void指针
CMapWordToOb 保存CObject指针,关键字为WORD
CMapStringToOb 保存CObject指针,关键字为字符串
CMapStringToPtr 保存void指针,关键字为字符串
CMapStringToString 保存字符串,关键字为字符串

声明:

CMap < SOCKET,   SOCKET,   char*,   char* >    m_SockToUserIDMap;   
CMap < char*,   char*,   SOCKET,   SOCKET>   m_UserIDToSockMap;    

赋值:

m_SockToUserIDMap[pUserInfo->sSocket] = pszUserID;   
m_UserIDToSockMap[pszUserID] = pUserInfo->sSocket; 

取值:

char   *pszUserID = m_SockToUserIDMap[sSock];   
SOCKET sSock = m_UserIDToSockMap[pszUserID];   

此处略去CMyData的代码。
以下演示CMap的基本用法,其它的也都差不多的用法,只是其中元素变一变。
//定义类型

typedef  CTypedPtrMap <CMapStringToOb,CString,CMyData*>   CMapDataMap;   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值