class CFrameWnd
{
public:
HWND hWnd;
public:
int RegisterWindow();
void Create(LPCTSTR lpClassName, LPCTSTR lpWindowName);
void ShowWindow(int nCmdShow);
void UpdateWindow();
};
class CWinApp
{
public:
CFrameWnd* m_pMainWnd;
public:
BOOL InitInstance(int nCmdShow);
int Run();
~CWinApp();
};
C++类如何和API函数和窗口关联。 CWinApp中封装了一个CFrameWnd类型指针,通过这个指针可以指向一个CFrameWnd实体,而CFrameWnd实体中又封装了窗口句柄hWnd,并且提供了一些供用户使用的接口,这些接口中其实都是调用了系统提供的API函数。CFramWnd并不是窗口本身,而是一个C++类,该类中保存了窗口句柄hWnd,这就将该C++类和窗口关联起来了,纽带就是这个窗口句柄hWnd.简单的说,可以将CFrameWnd类看做管理窗口hWnd的对象,这是一个双射关系。MFC中的C++类都要与某一个资源(如窗口,位图等...)相关联,关联方式可以通过窗口句柄,位图的ID等...