CFrameWnd类


CFrameWnd类的成员变量

 

m_hMenuDefault     默认菜单句柄

m_pViewActive   当前活动view

rectDefault     静态CRect作为参数在创建时CFrameWnd对象,

            以允许Windows选择窗口的初始大小和位置。

m_bAutoMenuEnable  控件自动启用和禁用的菜单项的功能。

CFrameWnd类的成员方法: (红色的为虚函数)

Create       实际通过CWnd:CreateEx()创建

LoadFrame    加载Windows框架窗口和相关资源,并将框架窗口附加给CFrameWnd对象。

ShowControlBar 显示控件条

GetActiveView     返回活动的视图

OnCreateClient 为框架构造一个用户窗口

CreateView   在框架中构造一个非CView派生的视图

RecalcLayout   重新设置CFrameWnd对象的控件条的位置

使用Create()创建CFrameWnd

virtual BOOL Create(

    LPCTSTR lpszClassName,//窗口类名(AfxRegisterWndClass ),NULL使用预定义类名

    LPCTSTR lpszWindowName,//标题栏

    DWORD dwStyle = Ws_OVERLAPPEDWINDOW,//窗口样式,FWS_ADDTOTITLE表示的文档的名称自动显示在窗口

    const RECT& rect = rectDefault,//窗口的大小和位置

    cWnd* pParentWnd = NULL,//父窗口

    LPCTSTR IpszMenuName = NULL,//菜单资源的名称,字符串或MAKEINTRESOURCE(ID)

    DWORD dwExStyle = 0,//窗口扩展样式

    CCreateContext*pContext = NULL//指定指向CCreateContext结构,可为NULL

    );

 

使用LoadFrame()创建CFrameWnd

virtual BOOL LoadFrame(

    UINT nIDResource,//共享资源ID与框架窗口。指的是菜单,工具条等等

    DWORD dwDefaultStyle = WS_OVERLAPPEDWINDOW | FWS_ADDTOTITLE,//窗口样式属性,FWS_ADDTOTITLE表示的文档的名称自动显示在窗口

    cWnd* pParentWnd = NULL,//父窗口

    CCreateContext*pContext = NULL//指定指向CCreateContext结构,可为NULL

    );

 

例子:

    // TODO:  在此添加控件通知处理程序代码

    CFrameWnd *pWnd = new CFrameWnd;

    pWnd->Create(NULL, L"hello", WS_OVERLAPPEDWINDOW, CRect(500, 500, 800, 800));

    pWnd->ShowWindow(SW_SHOW);

    pWnd->m_hWnd;