四个窗口之间传递信息??老师给的任务,着急交差!!

xiaofengpangpang 2003-08-20 03:30:52
我想用多文档来实现下面的这个功能:
打开四个窗口,
第一个窗口用树形控件来控制其他三个窗口,当选择不同的项时,其他三个窗口要相应的变化
第二个窗口动态的显示一个图,
第三个窗口显示文字,这些文字的每行要定时的变化颜色,
第四个窗口显示和第三个窗口有关的一些信息,随着第三个窗口的文字变化二变化

各位给点意见,这些功能能这样实现吗?如果能,能给我个类似的源代码吗?如果不能实现,有什么其他的好办法吗?

这是我的老师给的任务,各位帮帮忙!我很着急!!

...全文
91 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dhbo 2003-08-26
  • 打赏
  • 举报
回复
to fireant25(蚂蚁) :
问一下:CRuntimeClass* pClass=RUNTIME_CLASS(CMyExploreview); 表示的是什么意思? CMyExplorview是其中的一种视图么?
不好意思,楼主,借你地方问一下:),一份Document是可以对应多个视图的
tanyaliji 2003-08-26
  • 打赏
  • 举报
回复
tyty
yinzhaohui 2003-08-26
  • 打赏
  • 举报
回复
cformview类由CTreeView派生
xiaofengpangpang 2003-08-26
  • 打赏
  • 举报
回复
balas(红玉) :
OnitUpdate这里不能用啊,运行就死机。

OnInitDialog,没有对话框怎么能有这个呢?

balas 2003-08-21
  • 打赏
  • 举报
回复
或是OnInitDialog()
balas 2003-08-21
  • 打赏
  • 举报
回复
xiaofengpangpang(小冯) 在OnitUpdate里。
fireant25 2003-08-21
  • 打赏
  • 举报
回复
一个文档可以对应多个视图,当然你也可以使用多文档模板,
这样可以多个文档对应多个视图,视你的需要而定。

你何必非要用树型控件呢?你完全可以使用CTreeView。
用切分窗口,其中一个窗口的视为继承自CTreeView的,
其他的视图根据你的需要来定。
xiaofengpangpang 2003-08-21
  • 打赏
  • 举报
回复
各位请问:
当一个视派生于cformview类时,要用到一个对话框,在这个对话框上加一个树形控件,但是在哪里初始化啊?
我试了几个地方都不好使?
98440622 2003-08-21
  • 打赏
  • 举报
回复
可以参考一下《深入浅出MFC》有详细的解释
xiaofengpangpang 2003-08-21
  • 打赏
  • 举报
回复
: wgc(才) :请问:在第一个窗口里怎么实现树形控件,这个树形控件还要控制其他三个窗口
bigflyingpig 2003-08-21
  • 打赏
  • 举报
回复
一个文档可以对应多个视的
wgc 2003-08-21
  • 打赏
  • 举报
回复
可以实现的!
你可以再新建3个视图类!在相应的视图类里边做出你的功能
xiaofengpangpang 2003-08-20
  • 打赏
  • 举报
回复
fireant25(蚂蚁)谢谢!

也就是说可以用一个文档,对应四个视,这样实现吗?
seedwq 2003-08-20
  • 打赏
  • 举报
回复
学习
fireant25 2003-08-20
  • 打赏
  • 举报
回复
给你个例子好了,从我以前的程序里摘取的。大致是选择TreeView里的一个叶子,则另一个视图显示该叶子对应的图形。从数据库里取数据那段代码你就不用看了。
void CMyTreeview::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
// TODO: Add your control notification handler code here

int Type;
CEditApp* app=(CEditApp*)AfxGetApp();
_RecordsetPtr m_pRecordset; //创建一个记录集对象
FieldPtr m_pField; //创建一个字段对象
m_pRecordset.CreateInstance(__uuidof(Recordset));
CTreeCtrl* pTree=(CTreeCtrl*)&GetTreeCtrl();
HTREEITEM hselItem=pTree->GetSelectedItem();//得到当前选中的树图项的句柄
if(hselItem==NULL) return; //如果没有选中,则退出
CString str,sql,Typestr;
BOOL Finded=FALSE; //将查找视图类标志设为FALSE
//如果有选中且选中的项是图标名称,则将所选图标显示在右边的切分窗口中
if(hselItem!=NULL&&pTree->GetItemText(hselItem)!="点类型图标"&&
pTree->GetItemText(hselItem)!="线类型图标"&&pTree->GetItemText(hselItem)!="区域类型图标")
{
str=pTree->GetItemText(hselItem);
Seldata.tbname=str; //将图标名称存入选中图标数据结构的相应项中
sql="select * from tbsjb where tbmc='"+str;
sql+="'";
m_pRecordset->Open((_bstr_t)sql, //打开图标库
app->m_pMyDb.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pField=m_pRecordset->Fields->Item["tbbm"];
str.Format((char*)_bstr_t(m_pField->Value));
Seldata.tbcode=str; //将图标名称存入选中图标数据结构的相应项中
m_pField=m_pRecordset->Fields->Item["tbsj"];//得到图标数据
str.Format((char*)_bstr_t(m_pField->Value));//转换成CString类型
Seldata.tbdata=str; //将图标名称存入选中图标数据结构的相应项中
m_pField=m_pRecordset->Fields->Item["tblx"]; //得到图标类型
Typestr.Format((char*)_bstr_t(m_pField->Value));
Type=atoi(Typestr);
Seldata.tbtype=Type; //将图标名称存入选中图标数据结构的相应项中
m_pRecordset->Close(); //关闭记录集
m_pRecordset.Release(); //释放记录集指针
app->SelectedDes=str;
app->Itemsel=TRUE; //应用类中的选中标志设为真

//这下面的代码跟你的问题有关!!!!
CEditDoc* pDoc=(CEditDoc*)GetDocument(); //得到当前文档类指针
//得到第一个View类对象指针的地址
POSITION pos=pDoc->GetFirstViewPosition();
//定义一个CMyExploreview的RUNTIME_CLASS
CRuntimeClass* pClass=RUNTIME_CLASS(CMyExploreview);
while(pos&&!Finded) //如果对象指针的地址不是空,且还没有找到需要的对象指针
{
CView* pView=pDoc->GetNextView(pos); //得到下一个View类的指针
if(pView->IsKindOf(pClass)) //如果是需要的CMyExploreview类的指针
{
CMyExploreview* pMyview=(CMyExploreview*)pView;
pMyview->Redraw(app->SelectedDes,Type); //在CMyExploreview中显示图标
Finded=TRUE; //查找视图类标志设为真
}
}
}
*pResult = 0;
}
fireant25 2003-08-20
  • 打赏
  • 举报
回复
完全可以实现。
可以用GetFirstViewPosition()和GetNextView(pos)函数配合得到
与文档绑定的所有View的句柄,而后你可以用SendMessage发送自定义
的消息到指定的视图,也可以直接通过句柄调用指定视图内的成员函数。
flyfalcon 2003-08-20
  • 打赏
  • 举报
回复
呵呵,好无聊的要求,不过对初学者还是很有好处的!

16,471

社区成员

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

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

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