我用向导为程序加了一个dialogbar,然后以CDialog为基类生成了一个新类;在dialogbar上面加了combobox控件,并为这个控件加了一个控件变量(新类中),在类的初始化函数中加了一条语句m_concombox.AddString("JLKLJKJL");但是程序运行后combobox里没有东西,为什么??? 我在一个dialog里作同样的事情,是可以为combobox加上的内容的.

解决方案 »

  1.   

    dialogbar同toolbar一样,都属于controlbar之列的,要在上面增加一个combobox的话,一般是应该先从CToolBar继承来一个自己的类,然后在OnCreate或者LoadToolBar方法内创建这个combobox,并且加上combobox内包含的子串,并且把它放置的合适的位置就可以了。如果我没有记错的话,msdn上是有例子的。
      

  2.   

    combobox内包含的子串不是固定的,有几个也不知道
      

  3.   

    (1)CDialogBar为基类;
    (2)你的DialogBar创建了吗?用Create
    (3)你的combobox在新类中是以ClassWizard方式增加的新变量吗?也就是说你的m_concombox和你的控件ID关联了吗?
      

  4.   

    DialogBar是我从project菜单里添加的,我向dialogbar里加了一个combobox,当我为combobox用ClassWizard方式添加变量的时候,MFC ClassWizard提醒我加新类,但是基类找不到CDialogBar,我只好用CDialog作为基类
      

  5.   

    是不是不能像使用dialog那样用dialogbar????????
      

  6.   

    combobox中的内容是动态的也不要紧,一般的情况下toolbar不是都是最为实例来应用的吗?
    在MainFrmwnd中可以知道它的实例吗,所以你就可以知道那个combobox了,所以可以随时增加
    combobox中的条目,也可以删除条目,还可以设置不同的条目为选定的条目!
      

  7.   

    关键是我想知道,是不是不能像在dialog使用控件那样用在dialogbar里用????????toolbar里的控件都是手工添加的,那样还不如直接用toolbar
      

  8.   

    在dialogbar里用按钮控件就和dialog里不同,要view里加响应函数,郁闷,真不知道这个dialogbar是不是不该存在,加了控件,却不好用,到底怎么在dialogbar里用combobox,哪个高手可以明确的告诉我,谢谢了.
      

  9.   

    HOWTO: How to Initialize Child Controls in a Derived CDialogBar 
    Q185672
    http://support.microsoft.com/support/kb/articles/q185/6/72.asp
      

  10.   

    你的派生的子类有很多地方要该!最终要的是从CDialogBar中派生的子类根本不会收到标准wm_initdialog消息
    所以,不会对子控件进行初始化