我是一个菜鸟,问个简单问题:
   
    一个界面,左侧有导航栏,右侧是主要显示区域(CListCtrl和CDialog)。点击导航栏上的按钮,显示区域根据点击按钮的不同,分别显示不同的内容。这样在MFC中一般是怎么实现的,是在按钮事件中更新整个窗口,以至于各部分变化。还是分别给需要变化的控件发送消息让他变化。非常着急,在线等,谢谢大家

解决方案 »

  1.   

    这样的界面一般都是单文档/多文档界面
    显示区域为VIEW类
    点击导航栏按钮,在VIEW里响应和实现
      

  2.   

    谢谢mfc168(子非鱼) 的答复,我是用的单文档的模式,也是在view里响应,但是我不明白的是,怎么响应这个点击事件呢,比如 右侧的CListCtrl 控件本来有2列,但是点击导航栏上一个按钮后,这个CListCtrl 变成了不同内容的3列。 CListCtrl怎么知道变成啥样??
      

  3.   

    右侧比如说CListCtrl,在点击导航栏的时候,添加数据,或者是删除原来的数据在重新添加,这样不就更新了嘛
      

  4.   

    谢谢回复,你的意思是  比如这个点击事件 是: OnBtn1Click() ,那么就在这个事件中直接加入对别的控件的处理 ,而不是简单的发个消息给相应的控件让他自己做?
      

  5.   

    可以在点击函数中,获得你要更新的控件的指针,而后用它自己的方法进行更新啊。当然,获得
    控件的指针方法可以是这样的,先获得VIEW类的指针,因为VIEW类是你的控件的父窗口,而后
    再用VIEW类的指针进行访问控件,再在里面更新内容。
      

  6.   

    谢谢appleboyecho的指点,我懂了你的意思。我以前以为是哪个控件需要有所变化,则由点击函数中发送一条这样的消息让他这样做。 也就是说MFC中处理方式还是在点击函数中找到那个控件,然后控件作一些改变,不知我的理解对否?
      

  7.   

    怎么做都可以,你理解的没错,也可以用SendMessage,给该控件发消息
    在该控件上添加一个消息处理函数,比如让ListCtrl控件刷新内容等
    点击按钮就是向该LIST控件发一个消息,让它自己处理