15,979
社区成员
发帖
与我相关
我的任务
分享
ON_MESSAGE(WM_MSG, OnMsg)
DWORD WINAPI CImagePackerDlg::TestFunc(LPVOID lpParam)
{
MONITOR_PARAM *pMonitorParam = (MONITOR_PARAM*)lpParam;
if (!pMonitorParam) return 1;
CImagePackerDlg *pImagePackerDlg = pMonitorParam->pImagePackerDlg;
if (!pImagePackerDlg) return 1;
int nTime = 0;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
Sleep(1000);
nTime += 1000;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
Sleep(1000);
nTime += 1000;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
Sleep(1000);
nTime += 1000;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
Sleep(1000);
nTime += 1000;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
Sleep(1000);
nTime += 1000;
pImagePackerDlg->PostMessage(WM_MSG, 0, (LPARA)nTime);
return 0;
}
//然后在按钮响应函数里:
void CImagePackerDlg::OnBnClickedOpenImg()
{
//...
HANDLE hTestThread;
DWORD dwThread;
MONITOR_PARAM MonitorParam;
m_bTestSuccess = FALSE;
MonitorParam.dTimeout = 20;
MonitorParam.pImagePackerDlg = this;
hTestThread = CreateThread(NULL, 0, TestFunc, &MonitorParam, 0, &dwThread);
if (hTestThread == NULL)
return;
CloseHandle(hTestThread);
hTestThread = NULL;
}
void CImagePackerDlg::OnMsg(UINT uMsg, WPARA wPara, LPARA lPara)
{
CString strTime;
strTime.Format(_T("time: %02d"), lPara);
((CStatic*)GetDlgItem(IDC_IMAGE_PATH))->SetWindowText(strTime);
}