MFC单文档应用CListView视图类问题

大家好,我是MFC初学者,目前想设计一个这样的程序:通过菜单栏选项弹出一个对话框,在对话框内输入一个学生的姓名学号以及成绩等信息,确认后在主窗口使用列表方式显示。程序的大... 大家好,我是MFC初学者,目前想设计一个这样的程序:通过菜单栏选项弹出一个对话框,在对话框内输入一个学生的姓名学号以及成绩等信息,确认后在主窗口使用列表方式显示。
程序的大致框架是这样的,使用CListView类作为视图的基类,在视图的OnInitialUpdate函数中完成了列表项的初始化工作,并插入了一些列表项。用以输入数据的对话框也创建好了。
目前遇到的问题是,在对话框的确认按钮消息映射中,怎么样如何才能够在主窗口中插入一个列表项?是通过获取视图类的指针?然后使用InsertItem();函数么?视图类是否有实例化的指针?
以下是初始化列表视图的程序段:
void CMyCFile2View::OnInitialUpdate()
{
CListView::OnInitialUpdate();
m_ImageList.Create(32,32,ILC_COLOR8|ILC_MASK,1,1);
m_ImageListSmall.Create(16,16,ILC_COLOR8|ILC_MASK,1,1);

CListCtrl& m_ListCtrl = GetListCtrl();
m_ListCtrl.SetImageList(&m_ImageList,LVSIL_NORMAL);
m_ListCtrl.SetImageList(&m_ImageListSmall,LVSIL_SMALL);
LV_COLUMN listCol;
char* const arCols[6] = {"序号","姓名","学号","成绩1","成绩2","成绩3"};
listCol.mask = LVCF_FMT|LVCF_WIDTH|LVCF_TEXT|LVCF_SUBITEM;
// 添加表头
for(int nCol=0;nCol<6;nCol++)
{
listCol.iSubItem = nCol;
listCol.pszText = arCols[nCol];
listCol.fmt = LVCFMT_LEFT;
m_ListCtrl.InsertColumn(nCol,&listCol);
}

// 以下添加列表内容
int nIndex,nItem;
CString strDisplay;
for(nItem=0;nItem<10;nItem++)
{
strDisplay.Format("%d",nItem);
nIndex = m_ListCtrl.InsertItem(nItem,strDisplay);
m_ListCtrl.SetItemText(nIndex,1,"张三");
m_ListCtrl.SetItemText(nIndex,2,"D301");
m_ListCtrl.SetItemText(nIndex,3,"0");
m_ListCtrl.SetItemText(nIndex,4,"D3115");
m_ListCtrl.SetItemText(nIndex,5,"0");
}
//nItem++;

// 以上添加列表内容

SetCtrlStyle(m_ListCtrl.GetSafeHwnd(),LVS_REPORT); // 设置为报表方式
m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ListCtrl.SetColumnWidth(0,LVSCW_AUTOSIZE);
m_ListCtrl.SetColumnWidth(1,200);
m_ListCtrl.SetColumnWidth(2,100);
m_ListCtrl.SetColumnWidth(3,100);
m_ListCtrl.SetColumnWidth(4,100);
m_ListCtrl.SetColumnWidth(5,100);
// TODO: 调用 GetListCtrl() 直接访问 ListView 的列表控件,
// 从而可以用项填充 ListView。
}
展开
 我来答
luosiyong
2011-07-28 · TA获得超过3256个赞
知道大有可为答主
回答量:1090
采纳率:0%
帮助的人:1626万
展开全部
在CListView视图中响应菜单消息(即这里有一个菜单命令的监听),然后是dialog.DoModule,这里返回的时候就可以直接设置CListView中相关的内容了。
更多追问追答
追问
好办法!不过能不能再dialog自己的类里面获取视图的指针?如何获取?
追答
这个,好像比较麻烦,你也可以在dialog提供一个函数,把视图指针设置进去。其他的方法我也没有试过。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式