线程定义为全局函数,如何调用其他的函数?在线等,急
long CTransparentWnd::screencopy(WPARAM wParam,LPARAM lParam)
{
AfxMessage("成功调用");
return 0;
}
UINT ComputerThreadProc(LPVOID param)
{
//这部分因该怎么写?
return 0;
}
void CTransparentWnd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nChar=='a')
{
pThread=AfxBeginThread (ComputerThreadProc,THREAD_PRIORITY_NORMAL,0,0,NULL);
}
CWnd::OnChar(nChar, nRepCnt, nFlags);
}
问题点数:100、回复次数:8Top
1 楼legendhui(秋天的叶子)回复于 2005-08-02 13:52:06 得分 40
UINT ComputerThreadProc(LPVOID param)
{
//这部分因该怎么写?
CTransparentWnd* transwnd = new CTransparentWnd();
transwnd->screencopy(WPARAM wParam,LPARAM lParam);
delete transwnd;
return 0;
}
Top
2 楼rwdx(忆)回复于 2005-08-02 13:54:15 得分 10
LPVOID param
好好利用这个参数,用它来传递指针Top
3 楼zhangshengyu(Interested in:filesystem, Storage, Filter Drivers )回复于 2005-08-02 14:04:02 得分 10
pThread=AfxBeginThread (ComputerThreadProc,NULL,THREAD_PRIORITY_NORMAL,0,0,NULL);
把当前指针传进去
Top
4 楼laiyiling(陌生人[MVP])回复于 2005-08-02 14:19:03 得分 10
AfxBeginThread(ComputerThreadProc,m_hWnd,THREAD_PRIORITY_NORMAL,0,0);
//m_hWnd是从CTransparentWnd得到的
参考
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=435Top
5 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2005-08-02 14:23:05 得分 10
将类实例指针作为参数传递给线程,但此类必须是线程安全的。Top
6 楼RedCrow(jinbo)回复于 2005-08-02 14:30:13 得分 10
long CTransparentWnd::screencopy(WPARAM wParam,LPARAM lParam)
{
AfxMessage("成功调用");
return 0;
}
UINT ComputerThreadProc(LPVOID param)
{
CTransparentWnd* transwnd = ( CTransparentWnd* )param;
return 0;
}
void CTransparentWnd::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (nChar=='a')
{
pThread=AfxBeginThread (ComputerThreadProc,this,THREAD_PRIORITY_NORMAL,0,0,NULL);
}
CWnd::OnChar(nChar, nRepCnt, nFlags);
}
Top
7 楼AntonlioX(做人要厚道)回复于 2005-08-02 14:34:53 得分 10
将CTransparentWnd对象的指针作为参数传递给线程Top
8 楼qrMs(空 气 1.1)回复于 2005-08-03 10:31:48 得分 0
两种方式:
1.在创建时使用结构体指针或对象指针将参数传递给线程函数
2.定义其它的全局对象指针Top




