情况描述:
小弟在一个对话框应用程序中开启另一个用户界面线程,想在主对话框中通过新线程的指针设置界面线程对话框的标题及相关属性,但就是得不到正确的指针.
请问如何获得。
//问题1 如何得到 pWinThread中主窗口的指针呢?下面语句(使用线程对象的成员变量m_pMainWnd)肯定不正确,否则就不会有问题2
CWinThread *pWinThread;
pWinThread= ::AfxBeginThread(RUNTIME_CLASS(CThrdSpeakToOne));
TRACE("pWinThread->GetMainWnd(): %d \n" ,pWinThread->GetMainWnd());
TRACE("pWinThread->m_pMainWnd: %d \n" ,pWinThread->m_pMainWnd);
TRACE("AfxGetMainWnd(): %d \n" ,AfxGetMainWnd());
//下面提供一组TRACE的值
//pWinThread->GetMainWnd(): 23002900
//pWinThread->m_pMainWnd: 23002900
//AfxGetMainWnd(): 1244396
((CThrdSpeakToOne*)pWinThread)->m_pMainWnd->SetWindowText("与"+strAsk+"聊天中");
//问题2 上面这句的结果改变的不是新的界面对话框的标题,而是主对话框的标题 为什么?
// pWinThread->m_pMainWnd究竟指向who?
小弟在一个对话框应用程序中开启另一个用户界面线程,想在主对话框中通过新线程的指针设置界面线程对话框的标题及相关属性,但就是得不到正确的指针.
请问如何获得。
//问题1 如何得到 pWinThread中主窗口的指针呢?下面语句(使用线程对象的成员变量m_pMainWnd)肯定不正确,否则就不会有问题2
CWinThread *pWinThread;
pWinThread= ::AfxBeginThread(RUNTIME_CLASS(CThrdSpeakToOne));
TRACE("pWinThread->GetMainWnd(): %d \n" ,pWinThread->GetMainWnd());
TRACE("pWinThread->m_pMainWnd: %d \n" ,pWinThread->m_pMainWnd);
TRACE("AfxGetMainWnd(): %d \n" ,AfxGetMainWnd());
//下面提供一组TRACE的值
//pWinThread->GetMainWnd(): 23002900
//pWinThread->m_pMainWnd: 23002900
//AfxGetMainWnd(): 1244396
((CThrdSpeakToOne*)pWinThread)->m_pMainWnd->SetWindowText("与"+strAsk+"聊天中");
//问题2 上面这句的结果改变的不是新的界面对话框的标题,而是主对话框的标题 为什么?
// pWinThread->m_pMainWnd究竟指向who?
解决方案 »
- 关于实现类似QQ文件传输功能的方法
- CDHtmlDialog::Navigate() 加载后 m_spHtmlDoc是否变化?原有的DHTML_EVENT_CLASS等事件映射是否仍然有效?
- 怎么样用多线程处理文件移动拷贝?
- ie问题
- 列表控件(CListCtrl)为何不能调整列宽了呢???
- VC中如何引用C文件。
- 我的Treeview,鼠标点击结点时,为何点不准?我已经知道原因,但我不知道要怎么解决。
- 获取焦点窗口的句柄
- 有什么简单办法可以对GetOpenFileName,GetSaveFileName时的对话框的位置进行控制?
- 屏蔽鼠标右键菜单 需要屏蔽该窗口的那些消息
- 程序A.exe运行过程中,怎么(能不能)知道该程序里面的任何一个函数的地址,怎么去调用该函数执行?(在线..)
- 关于WebBrowser Control当隐藏掉的时候或者所开的窗口比较小,在提交和获取数据是就会有问题,该怎么办
cnwolf(独狼) 说的很对:昨天我跟踪了一下 ,确实是随机执行,子线程确实没有把窗体创建出来。我赋值当然就错了sycnick(李小虾) 你说我应该怎么修改设计呢 ,不要把话掰开说,很急人的!
我很乐意听同学们的任何意见。