多线程中MFC对象参数的传递

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

今天应程序的需要,在下载数据的线程中,要对状态栏的文字进行更改,以便用来显示下载状态。我一开始这样写的程序:

void SetStatusText(CString str)

{

CMainFrame* pFrame;

pFrame=(CMainFrame*)AfxGetMainWnd();

pFrame->m_wndStatusBar.SetPanlText(1,str);

}

实际发现这样子没法取得m_wndStatusBar的句柄,调式中m_wnd一直是?????或者0xffffff,所以一直没有成功。后来想到用SendMessage的办法

void SetStatusText(CString str)

{

CMainFrame* pFrame;

pFrame=(CMainFrame*)AfxGetMainWnd();

pFrame->SendMessage(WM_SET_TEXT,(UINT)&str,0);

}

在CMainFrame中增加消息映射和处理函数

long CMainFrame::SetStatusText(UINT l,long p)

{

CString* str=(CString*)l;

m_wndStatusBar.SetPaneText(1,*str);

return 0;

}

如此一来,一切搞定

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航