我用CPropertySheet,CPropertyPage来做属性页,其中有一个页m_page1有个CListBox控件,用ClassWizard为该控件申明一个control变量m_lst。然后我要为该控件添加内容,用AddString方法:myProp.m_page1.m_list.AddString("hello")
编译没有错误,但执行到这句诗就会出错!
请问高手这是怎么回事?该如何解决?谢谢!!

解决方案 »

  1.   

    我是在view.cpp文件中调用的,首先申明一个CPropertySheet的成员myProp,然后调用上面写的那句语句
      

  2.   

    这是不行的——如果是同一个线程的话,无论是DoModal()之前还是之后,该Sheet的窗口都不存在,也就是说你的所有的控件都没有产生,当然不能对其进行操作,只能在窗体产生之后才能对其进行操作(不涉及到控件的成员变量是可以赋值的),也就是说初始化(以及修改)必须在你的窗口初始化以后。当然,如果有两个线程,当你的Sheet窗体生成以后,你的View通过另外的线程对它进行操作,也是可行的。
      

  3.   

    但是我操作page页上其它的控件,如给text控件赋值是可行的。
      

  4.   

    你是用的SetWindowText()之类的函数给text控件赋值吗?只有这个函数才能和AddString()是同类型的如果你是映射的CString变量,对变量赋值,是可以的,它会在对话框初始化的自己对控件赋值,所以你实际操作的不是控件,而是变量,OK?