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;