CreateThread(NULL,0,MyThreadProc,NULL,0,NULL);
对话框里用正个方法创建一个线程对话框界面上有一个List Control 控件,关联的变量是m_List1
unsigned long __stdcall MyThreadProc(LPVOID p)
{
//请问在这个函数里怎么使用m_List1????????????????????
}

解决方案 »

  1.   

    这...----你对话框的类: CDlg;在CreateThread()的cpp中#include"dlg.h"//CDlg的头文件CreateThread()
    {
      CDlg dlg;
      dlg.DoModal();//EXP
    }
      

  2.   

    用对话框类定义一个全局变量,比如CYourDialog *pDlg = NULL;
    在对话框的OnInitDialog函数里:pDlg=this;
    然后用pDlg->m_list访问。
      

  3.   

    http://blog.csdn.net/lixiaosan/archive/2006/04/07/653563.aspx
      

  4.   

    unsigned   long   __stdcall   MyThreadProc(LPVOID   p)
    {
    //请问在这个函数里怎么使用m_List1????????????????????
     CYourDlg * dlg = (CYourDlg*)p;
     dlg->m_list1.//do something..
    }
      

  5.   

    对于MFC的一般的类,最好不用创建全局变量,这是很危险的行为
      

  6.   

    全局方法可以,以线程函数的参数也行,最好不用MFC窗口类指针,因为不同线程的窗口有时不好用,应改用HWND,直接使用窗口句柄,必要时CWnd::FromHandle(hWnd)->,这样调用mfc函数
      

  7.   

    其实只要你控制得当,也不会出什么问题。CreatThread的时候把m_list的m_hWnd成员传过去也是个不错的办法。