我在一个方法中用
m_pListBox = (CListBox*)GetDlgItem(IDC_LIST1);
保存了对IDC_LIST1的引用.我在其它的方法中,引用这个变量时,却发现m_pListBox中的值已经变成了0xfeee...,一旦引用m_pListBox->...就出错.我看了
http://expert.csdn.net/Expert/topic/1533/1533271.xml?temp=.4507715中提到了一些东西,跟我的有些类似,但我怎么保存这个m_pListBox对IDC_LIST1的引用啊?help!

解决方案 »

  1.   

    你直接View--ClassWizard--Member Variables给你的IDC_LIST1加一个变量
      

  2.   

    我的m_pListBox是一个公有的成员变量,我将它放在一个单独的类里面,在一个名为init的方法中,给它赋值.在我的另一个类中,去访问这个公有变量时,出错.引用时可以看到,m_pListBox的值是没有变的,但它的hWnd发生了变化,所以出错了,但我不知道它里面的hWnd为什么变了.
      

  3.   

    你的m_pListBox是用ClassWizard生成的吗?
    如果是,应该不会需要m_pListBox = (CListBox*)GetDlgItem(IDC_LIST1);这样的语句如果是你自己加的,而且你是在init(初始化)中再赋值,那么当其他类引用时,当然会出错
    正确的方法就是用classwizard
      

  4.   

    CListBox m_ListBox;
    m_ListBox.SubclassDlgItem(IDC_LIST1, this);