c++ 线程消息

c++ 线程消息,第1张

概述本文章向大家介绍c++ 线程消息,主要包括c++ 线程消息使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

int CMainDataProcEngine2::StartProc(voID)

{

if (NulL!=m_hProcThread)

{

return TRUE;

}

m_hProcThread = (HANDLE)_beginthreadex(NulL,CMainDataProcEngine2::ProcFunc,this,CREATE_SUSPENDED,&m_uiProcThread);

if (NulL==m_hProcThread)

{

return FALSE;

}

::PostThreadMessage(m_uiProcThread,WM_NulL,0);

::ResumeThread(m_hProcThread);

return 0;

}

unsigned __stdcall CMainDataProcEngine2::ProcFunc(voID* pArgument)

{

CMainDataProcEngine2* pThis = (CMainDataProcEngine2*)pArgument;

if (NulL==pThis)

{

_endthreadex(1);

return 1;

}

MSG message;

while (1)

{

if (::PeekMessage(&message,NulL,PM_norEMOVE))

{

if (::GetMessage(&message,0))

{

pThis->OnProcThreadMessage(message.message,message.wParam,message.lParam);

}

else

{

_endthreadex(0);

return 0;

}

}

else

{

if (!pThis->DoProcessing())

{

::Sleep(50);

}

}

}

}

voID CMainDataProcEngine2::OnProcThreadMessage(UINT uMsg,WParaM wParam,LParaM lParam)

{

if (uMsg==TM_SEtimageMODE)

{

int im = (int)wParam;

TMOnSetimageMode(im);

}

else if (uMsg==TM_UPDATEIMAGE)

{

TMOnUpdateImage();

}

else if (uMsg==TM_TRANSIMAGE)

{

int im = (int)wParam;

TMOnTransImage(im);

}

else if (uMsg==TM_REVIEW)

{

int nReviewmode = (int)wParam;

BOol bKeepRevIEwing = (BOol)lParam;

TMOnRevIEw(nReviewmode,bKeepRevIEwing);

}

else if (uMsg==TM_MARKTIP)

{

int nState = (int)wParam;

ClearTIP(nState);

}

}

bool CMainDataProcEngine2::DoProcessing()

{

if (m_nProcMode==DP_SCANNING)

{

if (CEquipRuntimeInfo::GetInstance()->m_bStopAsdiskLack )

return false;

return DoScanningProc();

}

else if (m_nProcMode==DP_REVIEWING)

{

return DoRevIEwingProc();

}

else

return false;

}

总结

以上是内存溢出为你收集整理的c++ 线程消息全部内容,希望文章能够帮你解决c++ 线程消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1264513.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存