[面试] C/C++ —— MFC(三)

来源:互联网 发布:qq数据库点赞 编辑:程序博客网 时间:2024/04/28 05:18

CWnd 窗口基类的仿真

class CWnd{public:    BOOL CreateEx( DWORD dwExStyle,      // extended window style                ...                 );    BOOL ShowWindow(int nCmdShow);    BOOL UpdateWindow();public:    HWND m_hWnd;};BOOL CWnd::CreateEx(DWORD dwExStyle,      // extended window style                ....                    ){    m_hWnd = ::CreateWindowEx(dwExStyle, ....);    return m_hWnd ? true:false;}BOOL CWnd::ShowWindow(int nCmdShow){    return ::ShowWindow(m_hWnd, nCmdShow);}BOOL CWnd::UpdateWindow(){    return ::UpdateWindow(m_hWnd);}int WINAPI WinMain(  HINSTANCE hInstance, ....){    WNDCLASS wndcls;    wndcls.cbClsExtra = 0;    wndcls.cbWndExtra = 0;    // ...    RegisterClass(&wndcls);    CWnd wnd;    wnd.CreateEx(...);    wnd.ShowWindow(SW_SHOWNORMAL);    wnd.UpdateWindow();    ...}

C++ 对象(CWnd)与窗口之间的关系

仅仅是因为在 CWnd 类的内部维护了一个指向窗口的句柄。

public:    HWND m_hWnd; 

窗口销毁,CWnd 对象的其他成员函数依然可以使用;

0 0
原创粉丝点击