在MFC dialog程序OSD中,我想在自定义类CProper中使用系统类COSDDLG的变量 目前使用的是全局变量 感觉很乱 有没有更好的办法。
同样 在COSDDLG类中使用CProper类的变量了?
好像MFC中不需要NEW生成一个COSDDLG的对象.

解决方案 »

  1.   

    COSDDLG类的变量作为全局变量也未尝不可,楼主觉得乱的原因是什么啊?是觉得用全局变量不合适么?这个倒是不用担心。如果不想作为全局变量来使用,那就放到自定义类CProper中作为它的成员变量吧,要引用时也很方便。
      

  2.   

    MFC 是有生成COSDDLG对象的 在COSDApp类中,
    COSDDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    但还是不只到在如何拿到该对象
      

  3.   

    通过 m_pMainWnd 来拿到COSDDlg对象
    COSDDlg构造的时候可以传递app对象,反过来拿到app
    COSDDlg dlg(this); 
      

  4.   

    COSDDLG* dlg = (COSDDLG)AfxGetMainWnd();
    然后用dlg->来访问成员。
      

  5.   

    更正一下:
    COSDDLG* dlg = (COSDDLG*)AfxGetMainWnd(); 
    然后用dlg->来访问成员。
      

  6.   

    在头文件里
    extern CCOsdDlg* OSDDlg;
    inline CCOsdDlg* getdlgAPP(){
    return OSDDlg;}
    在CPP里
    CCOsdDlg* OSDDlg;
      

  7.   

    然后 在另个类里加上头文件
    getdlgAPP()->函数名OR变量