小弟写了一个tab属性页 共有两页,在主窗口中想一页创建一个线程 可是定义完子线程后DWORD WINAPI FunPorc1(LPVOID lpPara) 却发现不能用属性页id了 比如:
CPara1 m_Para1;
CPara2 m_Para2;
在整个.cpp文件中都能用 可是在子线程里却用不了m_Para1等控件 我想在子线程里动态更新一个lable的caption 所以想得到其id 请大哥们 帮帮忙 谢谢!
CPara1 m_Para1;
CPara2 m_Para2;
在整个.cpp文件中都能用 可是在子线程里却用不了m_Para1等控件 我想在子线程里动态更新一个lable的caption 所以想得到其id 请大哥们 帮帮忙 谢谢!
也就是说,子线程要通过主线程的句柄,才能调用主线程的变量
{
// 获得当前实例的句柄
CXXX* pInstance = (CXXX*)pParam; // 当前实例pInstance->abc = zzz; // 句柄->变量 = 值
pInstance->m_Para1.???;
// 其它代码return 0;
}
UINT CTabDlg::YYYFunc(LPVOID pParam)
{
return UINT();
}
hTheard1=CreateThread(NULL,0,YYYFunc,NULL,0,NULL);错误提示:
错误 2 error C2664: 'CreateThread' : cannot convert parameter 3 from 'UINT (__cdecl *)(LPVOID)' to 'LPTHREAD_START_ROUTINE'
望提示 谢谢!
UINT CTabDlg::YYYFunc(LPVOID pParam)
{
CTabDlg* aa=(CTabDlg*)pParam;
aa->m_Para1.SetDlgItemText(IDC_bb,(LPCTSTR)(_T("sdafas"))); return UINT();
}
一写这句的话就会提示异常:0X000000005读取位置0X00000134时访问冲突!
然后就用this指针调用,和在类的内部调用一样的。
判断一下吧。