各位大侠,我在做MFC单文档工程时,出现一个问题:
用户程序我放在App类中,自己当时想的是在其他类中都可以访问App类,现在问题是在View类中可以非常正确的使用App类中的变量(通过语CXXXApp *app = (CXXXApp *)AfxGetApp(); ),但在MainFrm类中使用App类中的变量是空值(假设App类中的变量是CString),这是为什么啊?

解决方案 »

  1.   

    为什么让cframewnd 去访问capp?
      

  2.   

    MFC有theapp全局对象,用这个就行。另外getapp就是获取主线程指针,看看两次获取的指针一样不一样
      

  3.   

    回复2楼的:因为做状态栏需要在mainFrame理做
      

  4.   

    回复三楼的,我试过你说的全局变量theapp,和“getapp就是获取主线程指针”是一样的效果,MainFrm类中使用App类中的变量是空值(假设App类中的变量是CString),但在View中却是对的
      

  5.   

    说明你还没有给CString变量赋值
      

  6.   

    App类中的变量CString什么时候赋值?
      

  7.   

    回复5楼的,但View类中有值,只不过我在View类Ondraw函数的中使用了定时器,至于App类中的变量CString值是三个线程中一个线程里的。难道mainFrm的OnCreate函数就执行一次,因为状态栏就是在那里面做的
      

  8.   

    OnCreate当然只执行一次了,而且它执行的时候你的View还没有创建的,所以哪来的值啊。
      

  9.   

    我的是基于对话框的程序,我也想在子对话框中调用那个App中的变量,该怎样调用呢!