这样怎么实现?视图之间的通信

nannan11 2004-07-11 05:51:30
我的SDI界面里,左视图有一个CTreeCtrl,右视图CListCtrl,现在想把左树中所选路径中的文件名在CListCtrl中显示,我现在的问题是不知道怎么把左视图CTreeCtrl的所选路径中的文件传到右视图的成员CListCtrl中显示出来??视图是用CSplitterWnd分割的。。

这是我部分代码,原来是这样实现的,可有问题
while(bContinue)
{
bContinue = file.FindNextFile();
if(!file.IsDirectory() && !file.IsDots())
{
SHFILEINFO info;
CString temp = str;
int index = temp.Find("*.*");
temp.Delete(index,3);//删除*.*
CString sss=file.GetFileName();
SHGetFileInfo(temp + file.GetFileName(),0,&info,sizeof(&info),SHGFI_DISPLAYNAME | SHGFI_ICON);
int i =m_ImageList.Add(info.hIcon);
========》问题所在 CMyLView *pApp=(CMyLView *)AfxGetApp();
=====》右视图 pApp->m_ctrlList.InsertItem(i,info.szDisplayName,i);
}
...全文
157 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgchina97 2004-07-12
  • 打赏
  • 举报
回复
同意:skyMountain(天山) 说法,
如果是普通文档视图,最好通过文档来建立关系
skyMountain 2004-07-12
  • 打赏
  • 举报
回复
一般来说,最好不要在视图之间直接通讯,这样违背了文档-视图模式的初衷。视图之间的交互,最好通过文档类做中介。
nineclock 2004-07-12
  • 打赏
  • 举报
回复
为什么不用函数呢?传变量就可以
CMyLView *pApp=(CMyLView *)AfxGetApp();
=====》右视图 pApp->你的函数();
vcstar80 2004-07-12
  • 打赏
  • 举报
回复
jongin(斩云) 的方法可以,我实验通过了
jongin 2004-07-11
  • 打赏
  • 举报
回复
补充一句,别忘了把m_wndSplitter定义为:public
jongin 2004-07-11
  • 打赏
  • 举报
回复
CLeftView pView1 = (CLeftView *)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter.GetPane(0,0));//得到左边,程序任何地方都可以使用

CRightView pView2 = (CRightView *)(((CMainFrame *)AfxGetMainWnd())->m_wndSplitter.GetPane(0,1));
subtop 2004-07-11
  • 打赏
  • 举报
回复
消息,函数,成员变量都可以使用
nannan11 2004-07-11
  • 打赏
  • 举报
回复
不是啊,我做的这个就像windows的explorer 一样,哪位能给我贴段代码出来???
chenang 2004-07-11
  • 打赏
  • 举报
回复
很简单,可以在每个视图中定义一个成员函数,分别用来改变显示数据用.
然后在另一个视图中调用就是了.
你不知道如何在一个视图中得到另一个视图的指针吗?
我先吃饭去了.........
Kudeet 2004-07-11
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=836
蒋晟 2004-07-11
  • 打赏
  • 举报
回复
http://dev.csdn.net/article/22/22243.shtm


在新建或者打开“文件”时候,文档需要通知视图当前文件夹的更改,这是通过调用CDocument::UpdateAllViews和重载CView::OnUpdate实现的。视图对这个通知的处理是清除上一个目录的缓存数据,缓存新目录的数据,以及更新文档标题。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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