gpt4 book ai didi

c++ - 如何从 CWinThread 访问 AfxGetMainWnd()?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:48 26 4
gpt4 key购买 nike

我正在尝试在名为 ClientManager 的类中创建工作线程,但我无法从新的 CWinThread 访问 AfxGetMainWnd(),即:

UINT ClientManager::WorkerThreadProc( LPVOID param ){
ClientManager *pThis = reinterpret_cast<ClientManager*>(param);
return pThis -> DoThreadJob();
}
UINT ClientManager::DoThreadJob(){
createClientSession("1");
return 0;
}

void ClientManager::createThread(){
m_clientManagerThread = AfxBeginThread(WorkerThreadProc,this,0,0,0,NULL);
}

void ClientManager::createClientSession(CString clientID){
if (AfxGetMainWnd()->GetSafeHwnd()== NULL){
_cprintf("NULL");
}
}

输出:NULL

AfxGetMainWnd()->GetSafeHwnd() 在主线程中工作。

谢谢!

最佳答案

AfxGetApp()->GetMainWnd() 在线程中工作。

无需将窗口句柄存储在 ClientManager 的成员中。

关于c++ - 如何从 CWinThread 访问 AfxGetMainWnd()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552343/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com