精通Visual.Cpp实效编程280例
Posted C码农
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了精通Visual.Cpp实效编程280例相关的知识,希望对你有一定的参考价值。
注意,本随笔是根据书籍 《精通Visual.Cpp实效编程280例》而来,亲尊重原作者版权,如果需要参考书籍的代码,请注意标注代码出处
Chapter 5
MFC 层次结构图:
5.19 Example 88 -- 列表视图的使用
MFC的CListView类实现了列表视图,调用CListView::GetListCtrl函数可以获得列表视图控件的引用。
GetListCtrl函数的定义:
CListCtrl& GetListCtrl( ) const;
编程步骤:
1. 建立一个多文档视图的应用程序,名称Example88,在建立向导中注意选择视图类的基类为CListView
2. 在CExample88View类中添加成员函数,代码如下:
void CExample88View::InitList() { //获得列表视图控件 CListCtrl *pList = &GetListCtrl(); //设置列表控件的显示格式 pList->ModifyStyle(LVS_ICON | LVS_SMALLICON | LVS_LIST, LVS_REPORT); pList->SetExtendedStyle(LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //在列表视图中插入列 for (int n=0; n<4; n++) { CString strColumeHeading = _T(""); strColumeHeading.Format(_T("Cloume %d"), n); pList->InsertColumn(n, strColumeHeading, 100, 100); } //在列表视图中插入行 for (int m=0; m<10; m++) { CString strItem = _T(""); strItem.Format(_T("Item %d"), m); pList->InsertItem(m, strItem); for (int n=0; n<4; n++) { CString strText = _T(""); strText.Format(_T("SubItem %d %d"), m, n); pList->SetItemText(m, n, strText); } } }
3. 在CExample88View类的OnInitialUpdate函数中添加初始化列表视图代码:
void CExample88View::OnInitialUpdate() { CListView::OnInitialUpdate(); // TODO: 调用 GetListCtrl() 直接访问 ListView 的列表控件, // 从而可以用项填充 ListView。 InitList(); }
4. 运行程序,效果如下:
5.20 Example89 -- 树形视图的使用
MFC的CTreeView类提供了树视图。调用CTreeView::GetTreeCtrl函数可以获得树控件的引用
编程步骤:
1. 建立一个多文档视图的应用程序,名称为Example89,在建立向导中注意选择视图类的基类为CTreeView
2. 在CExampole89View类中添加成员函数,代码如下:
void CExample89View::InitTree()
{
//获得树形控件
CTreeCtrl *pTree = &GetTreeCtrl();
//给树形控件添加连线和按钮
pTree->ModifyStyle(0, TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS);
CString strText = _T("");
//在树中插入项
HTREEITEM hRoot = pTree->InsertItem(_T("Root"));
for (int i=0; i<4; i++)
{
strText.Format(_T("Item %d"), i);
//在树中插入项
HTREEITEM hParent = pTree->InsertItem(strText, hRoot);
for (int j=0; j<5; j++)
{
strText.Format(_T("SubItem %d %d"), i, j);
pTree->InsertItem(strText, hParent);
}
//展开树
pTree->Expand(hParent, TVE_EXPAND);
}
//展开树项
pTree->Expand(hRoot, TVE_EXPAND);
//选择树项
pTree->Select(hRoot, TVGN_CARET);
}
3. 在CExample88View类的OnInitialUpdate函数中添加初始化列表视图代码:
void CExample89View::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
//初始化树控件
InitTree();
}
4. 运行程序,效果如下:
以上是关于精通Visual.Cpp实效编程280例的主要内容,如果未能解决你的问题,请参考以下文章