16,473
社区成员
发帖
与我相关
我的任务
分享
#include "stdafx.h"
#include <Windows.h>
#include <TCHAR.h>
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <iostream>
using namespace std;
class cwnd;
typedef void (cwnd::*pFun)();
struct MyMessage_map
{
int num;
pFun p;
int type;
};
struct MyMessage
{
MyMessage_map * pMymap;
MyMessage * pBaseClass;
};
class cwnd
{
public:
static MyMessage Message_cwnd;
static MyMessage_map map_wnd[];
pFun pp;
void HelpFun(int i)
{
pp = this->GetMyMessage()->pMymap[i].p;
if(pp)
(this->*pp)();
}
public:
void ha1()
{
cout<<"cwnd::left"<<endl;
}
void ha2()
{
cout<<"cwnd::right"<<endl;
}
virtual MyMessage *GetMyMessage()
{
return &Message_cwnd;
}
};
MyMessage_map cwnd::map_wnd[] ={{1,&cwnd::ha1,1},{2,&cwnd::ha2,2},{0,NULL,0}};
MyMessage cwnd::Message_cwnd = {cwnd::map_wnd,NULL};
int main(int argc, char* argv[])
{
cwnd wnd;
wnd.HelpFun(0);
return 0;
}