WEB开发网
开发学院软件开发VC VC++深入详解:MFC框架窗口(2) 阅读

VC++深入详解:MFC框架窗口(2)

 2008-11-24 19:38:09 来源:WEB开发网   
核心提示: 在MFC底层代码中,CFrameWnd类的Create函数内部调用了上述CreateEx函数,VC++深入详解:MFC框架窗口(2)(2),而前者又由CFrameWnd类的LoadFrame函数调用,读者可以自行跟踪这一调用过程,CFrameWnd类的Create函数的声明也位于AFXWi

在MFC底层代码中,CFrameWnd类的Create函数内部调用了上述CreateEx函数。而前者又由CFrameWnd类的LoadFrame函数调用。读者可以自行跟踪这一调用过程。

  CFrameWnd类的Create函数的声明也位于AFXWin.h文件中,具体代码如下所示。
  BOOL Create(LPCTSTR lpszClassName,
        LPCTSTR lpszWindowName,
        DWORD dwStyle = WS_OVERLAPPEDWINDOW,

const RECT& rect = rectDefault,
        CWnd* pParentWnd = NULL,    // != NULL for popups
        LPCTSTR lpszMenuName = NULL,
        DWORD dwExStyle = 0,
        CCreateContext* pContext = NULL);

其定义位于在WINFRM.CPP文件中,部分代码如例3-15所示。

例3-15

  BOOL CFrameWnd::Create(LPCTSTR lpszClassName,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    LPCTSTR lpszMenuName,
    DWORD dwExStyle,
    CCreateContext* pContext)
  {
  ……
    if (!CreateEx(dwExStyle, lpszClassName, lpszWindowName, dwStyle,
      rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
      pParentWnd->GetSafeHwnd(), hMenu, (LPVOID)pContext))
    {
      TRACE0("Warning: failed to create CFrameWnd.n");
      if (hMenu != NULL)
        DestroyMenu(hMenu);
      return FALSE;
    }
  ……
  }

Tags:VC 深入 详解

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接