一、利用窗口指针调用数据
1.主窗口指针的获取:
1.在主线程中获取:CWnd* AfxGetMainWnd();此处返回值是CWnd* 类型的,具体使用时还需要根据需要对类型进行转换。
2.在子线程中获取:CWnd* AfxGetApp()->GetMainWnd();或CWnd* AfxGetApp()->m_pMainWnd;
先获取进程指针,再获取主窗口指针。返回值类型依旧同上,根据需要自行转换。
2.子窗口指针的获取:
1.在主线程中获取:
//得到子窗口的窗口句柄
HWND hDlg=::FindWindow(NULL,_T("子窗口的caption"));
//得到子窗口的指针
CSonDlg* pDlg = (CSonDlg*)CSonDlg::FromHandle(hDlg);
2.在子线程中获取:
(用上述方法找不到子窗口指针),在调用线程参数处,将需要用到的所有子窗口指针打包作为线程函数的参数传递给子线程即可。
二、利用静态数据成员传递数据
将类下的数据成员定义为静态数据成员(通过控件添加的变量同样可以这么操作),那么在类外需要调用该数据成员处只需按照 类名::数据成员名 的格式调用即可。
三、全局变量
好像没什么说的。。。第一篇博客,Mark下~