我们看到他们是同宗同源的。我们了解了这个类,我们知道在一个类实例化之前,她是没有任何作用的,所以我们要定义和实例化这两个类。我们继续上次的程序。在里面加这两个类的定义和实例化。
#include <afxwin.h> #include <afxext.h>//MFC扩展类的头文件,也就是类的定义 #include "resource.h" class sample:public CFrameWnd { public: CToolBar t;//实例化工具条类 CStatusBar s;//实例化状态条类 sample() { Create(NULL,"MFC Window",WS_OVERLAPPEDWINDOW,rectDefault,NULL,MAKEINTRESOURCE(IDR_MENU1),0,NULL); MessageBox("My MFC Window","CFrame constructor",MB_OK); } void OnLButtonDown(UINT,CPoint)//添加的消息处理函数 { ::MessageBox(NULL,"ddd","dd",MB_OK); }
DECLARE_MESSAGE_MAP()//消息映射的申明
};
BEGIN_MESSAGE_MAP(sample,CFrameWnd) //这个宏填写两个参数,一个子类,一个父类 ON_WM_LBUTTONDOWN()//左键按下的事件 END_MESSAGE_MAP()//结束宏 class App:public CWinApp { public: BOOL InitInstance(); BOOL ExitInstance();
};
BOOL App::InitInstance() { MessageBox(0,"My MFC Window","InitInstance",MB_OK|MB_ICONASTERISK); sample *obj; obj=new sample; m_pMainWnd=obj; obj->ShowWindow(SW_SHOWMAXIMIZED); return TRUE; }
BOOL App::ExitInstance() { MessageBox(0,"My Window","ExitInstance",MB_OK|MB_ICONHAND); return TRUE; }
App a; 添加了三句话,我们运行一下,发现并没有效果。其实,在实例化后,我们仅仅是可以使用这两个类了,我们还要调用这两个类的方法才行。在调用之前,我们在讲一下理论知识。
|