如何在一个线程中在statusbar上显示文字!!!!!!!!!!!(最好有源代码)

tryibest 2001-11-03 12:21:31
我在mainframe里用
CWinThread *pThread=AfxBeginThread(ThreadSearch,&xxx,THREAD_PRIORITY_NORMAL);
新建了一个线程,想在线程中使statusbar上显示文字
操作如下
UINT ThreadSearch(LPVOID pParam)
{
CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
pFrame->m_wndStatusBar.SetPaneText(0,_T("abc"));
return 0;
}
我已经把
mainframe中的statusbar.create改为了
if (!m_wndStatusBar.Create(this,WS_CHILD|WS_VISIBLE|CBRS_BOTTOM,ID_MY_STATUS_BAR) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
但一运行,就说wincore.cpp文件883行出错,忽略以后可以显示我要的结果,不知是什么原因,请大帮助!!!!!!谢谢
email:
tryubest@citiz.net

...全文
80 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ydogg 2001-11-04
AfxBeginThread时传递this指针或者AfxGet

1.传递框架指针
CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
CWinThread *pThread=AfxBeginThread(ThreadSearch,pFrame,THREAD_PRIORITY_NORMAL);

2.
UINT ThreadSearch(LPVOID pParam)
{
CMainFrame *p = (CMainFrame *)pParam;
pFrame->m_wndStatusBar.SetPaneText(0,_T("abc"));
return 0;
}
回复
worker thread is diffrent from user thread.
回复
tryibest 2001-11-03
up
回复
darkay 2001-11-03
我也遇到了类似的问题,我跟了一下应是AfxGetxxx这类的函数在worker thread中工作不正确,得到的句柄都是不对的,不知道有没有高手知道其中的道理以及如何使用才行呢?对拉,FromHandle好像是个方向,我看了一些VC的例子好像也是用这个函数的,但是不是很理解个中的用法
回复
yaya_zhu 2001-11-03
将状态栏句柄传进线程试试
回复
tryibest 2001-11-03
voidman()能不能说的详细一点,最好能发给我一个例子
回复
voidman 2001-11-03
不要在一个线程里操纵别的线程里的MFC类,用FromHandle,或者用Attach生成自己线程的MFC类再操纵它
回复
相关推荐
发帖
进程/线程/DLL
创建于2007-09-28

1.5w+

社区成员

VC/MFC 进程/线程/DLL
申请成为版主
帖子事件
创建了帖子
2001-11-03 12:21
社区公告
暂无公告