首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

GetDlgItem、EnableWindow等函数在线程函数中无法使用,郁闷.解决方案

2012-01-20 
GetDlgItem、EnableWindow等函数在线程函数中无法使用,郁闷......如题,盼救星光临,如同我的梦中之神.......

GetDlgItem、EnableWindow等函数在线程函数中无法使用,郁闷......
如题,盼救星光临,如同我的梦中之神.......

[解决办法]
将窗口指针传递给线程,或者申明一个全局窗口指针,使线程内可见。
例如:
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内声明的宏工程内都可见)

热点排行