ListView 刷新问题

zqqq1 2011-05-20 11:01:21
使用ListView,却发现在ListView中不是使用OnDraw刷新视图。

那请问:如何像一般文档视图结构那样,在修改完文档之后,一个Invalidate(),视图就可以根据文档刷新?我应该修改哪个函数?谢谢。
我在mainframe中操作的,具体有什么办法,给点详细的解释。我开始想在mainframe中获得listview指针,但是没法做到,编译都通不过去,listview是创建工程时初始的那个
...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-06-09
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
Eleven 2011-05-21
  • 打赏
  • 举报
回复
应该是刷新的时候CListView类拦截了间接基类CView类的OnDraw函数函数的调用。你可以直接在你的CListView派生类中提供一个public方法来刷新你CListCtrl控件上的数据
zqqq1 2011-05-21
  • 打赏
  • 举报
回复
各位,我再说明白一些,在doc中我定义数据,然后在mainframe中对数据进行操作后,通知listview把数据显示出来,就是这样。根本就不行,listview中的ondraw不响应
Eleven 2011-05-21
  • 打赏
  • 举报
回复
使用ListView,却发现在ListView中不是使用OnDraw刷新视图。
------------------------------------------------
什么意思?你要修改CListView中对应的item项的数据?
CListView::GetListCtrl().SetItemText();
vcf_reader 2011-05-21
  • 打赏
  • 举报
回复
UpdataAllVirews()
yjueqtd 2011-05-21
  • 打赏
  • 举报
回复
updatewindow();
zqqq1 2011-05-20
  • 打赏
  • 举报
回复
//CMainFrame中
void CMainFrame::OnSelchangedTree(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
CView *pview = (CView *)GetActiveView();
pview->InvalidateRect(NULL);
*pResult = 0;
}

//CManagerView 中
void CManagerView::OnDraw(CDC* pDC)
{
CManagerDoc* pDoc = GetDocument();
int s = 0;
pDC->TextOut(0,0,"asdfasdfasd");
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here

}
zqqq1 2011-05-20
  • 打赏
  • 举报
回复
大哥,不行啊。
CView* pView = GetActiveView();
if(pView)
{
pView->Invalidate();
}
我就是这么用的,不行
Eleven 2011-05-20
  • 打赏
  • 举报
回复
CView* pView = GetActiveView();
if(pView)
{
pView->InvalidateRect();
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧