例如
UINT CTDlg::ThreadProc(LPVOID param)
{
m_strResult="Thread";
m_editResult.SetWindowText(m_strResult); //成员变量
}
可以成功!
现在我想把他改写为独立函数UINT ThreadProc(LPVOID param)
如何操纵成员控制变量m_editResult?
在 CTApp::InitInstance() 有这句 CTDlg dlg;
我想在独立函数ThreadProc()中达到相同的功能是打 :dlg.m_editResult.SetWindowText(m_strResult) 吗?
我这样打了是错误的! 打了 dlg 后,后面的成员函数都不会自动列出!
到底该如何使用啊?
把dlg作为参数传递进来
在APP里定义个公共的控制变量,把m_editResult指针付给公共控制变量,你想在哪里控制都都可以了
通过((你的APP*)(AfxGetApp()))->m_edit....
这样调用线程函数
AfxBeginThread(ThreadProc, (LPVOID)this);
然后
UINT ThreadProc(LPVOID param)
{
CTDlg *pDlg = (CTDlg *)param;
m_strResult="Thread";
pDlg->m_editResult.SetWindowText(m_strResult); //成员变量
}