将窗口指针传递给线程,或者申明一个全局窗口指针,使线程内可见。
例如:
UINT TestThread(LPVOID pParam)
{
CMyDlg* pDlg = (CMyDlg*)pParam;
pDlg->GetDlgItem(IDC_Button1)->EnableWindow(0);
return 0;
}
void CMyDlg::OnBnClicked1()
{
AfxBeginThread(TestThread,this);
}
重点是对于线程函数所处位置,窗口类的声明可见、窗口类对象的指针可见,以及如果使用GetDlgItem(ID),ID的声明也应当是可见的。(一般resource.h内声明的宏工程内都可见)
例如:
UINT TestThread(LPVOID pParam)
{
CMyDlg* pDlg = (CMyDlg*)pParam;
pDlg->GetDlgItem(IDC_Button1)->EnableWindow(0);
return 0;
}
void CMyDlg::OnBnClicked1()
{
AfxBeginThread(TestThread,this);
}
重点是对于线程函数所处位置,窗口类的声明可见、窗口类对象的指针可见,以及如果使用GetDlgItem(ID),ID的声明也应当是可见的。(一般resource.h内声明的宏工程内都可见)