|
7.4.3 在子窗口中嵌入控件
在子窗口中嵌入控件其实很简单,首先调用CreateStatic方法和CreateView方法创建静态分割的窗体和子视图,然后在视图类的OnInitialUpdate函数中调用控件的Create方法即可。
例7.4 在子窗口中嵌入控件。(实例位置:光盘\TM\sl\7\4)
步骤如下:
(1)创建一个单文档应用程序。
(2)选择Insert/New Class命令,创建一个以CView类为基类的CClientView类。
(3)在框架类的头文件中声明CSplitterWnd类对象m_wndSplitter。
(4)重载框架类的OnCreateClient虚方法,在该方法中分割视图窗口。代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { m_wndSplitter.CreateStatic(this,1,2); //创建分割窗口 //创建视图 m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CViewCtrlView),CSize(200,100),pContext); m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CClientView),CSize(200,100),pContext); return TRUE; //设置返回值 //return CFrameWnd::OnCreateClient(lpcs, pContext); //不调用基类 } |
(5)在CClientView类的头文件中声明一个列表视图类对象m_List。
(6)在CClientView类的OnInitialUpdate方法中创建控件,代码如下。
void CClientView::OnInitialUpdate() { CView::OnInitialUpdate(); CRect rect; //声明区域对象 GetClientRect(rect); //获得视图的客户区域 m_List.Create(LVS_REPORT|LVS_SINGLESEL|LVS_SHOWSELALWAYS|WS_BORDER, rect,this,10001); //创建列表视图控件 //设置列表视图的扩展风格 m_List.SetExtendedStyle(LVS_EX_FLATSB //扁平风格显示滚动条 |LVS_EX_FULLROWSELECT //允许整行选中 |LVS_EX_HEADERDRAGDROP //允许整列拖动 |LVS_EX_ONECLICKACTIVATE //单击选中项 |LVS_EX_GRIDLINES); //画出网格线 m_List.ShowWindow(SW_SHOW); //显示控件 m_List.InsertColumn(0,"姓名",LVCFMT_LEFT,100,0); //设置姓名列 m_List.InsertColumn(1,"所属朝代",LVCFMT_LEFT,100,1); //设置所属朝代列 m_List.InsertItem(0,""); //插入第0行 m_List.SetItemText(0,0,"关羽"); //向第0列插入数据 m_List.SetItemText(0,1,"三国"); //向第1列插入数据 m_List.InsertItem(1,""); //插入第1行 m_List.SetItemText(1,0,"秦琼"); //向第0列插入数据 m_List.SetItemText(1,1,"隋唐"); //向第1列插入数据 m_List.InsertItem(2,""); //插入第2行 m_List.SetItemText(2,0,"陈近南"); //向第0列插入数据 m_List.SetItemText(2,1,"清朝"); //向第1列插入数据 }
| 实例的运行结果如图7.12所示。
|
| 图7.12 在子窗口中嵌入控件 |
【责任编辑: 夏书 TEL:(010)68476606】
|