您的位置:首页 > 其它

下载进度条的问题总结

2013-03-21 19:48 162 查看
点击下载按钮以后开始进行下载,弹出进度条,当下载结束后进度条对话框退出。

处理方法:

1.创建进度条对话框资源;

2.创建线程,在线程中显示进度条对话框并向串口发数据

CDownloadProgress *downloadProgress = new CDownloadProgress;

downloadProgress->Create(IDD_DIALOG_PROGRESS);

thInfo.pBufSize = bufSize;

thInfo.pSendBuf = SendBuf;

thInfo.pdownprogress = downloadProgress;

AfxBeginThread(ControlThread,&thInfo,THREAD_PRIORITY_NORMAL,0,0);

UINT ControlThread(LPVOID lpParam)

{

threadInfo* pInfo = (threadInfo *)lpParam;

unsigned char *pSendBuf = (unsigned char *) pInfo->pSendBuf;

m_downloadProgress = (CDownloadProgress*)pInfo->pdownprogress;

int psize = pInfo->pBufSize;

m_downloadProgress->ShowWindow(SW_SHOW);

m_downloadProgress->CenterWindow();

// 弹出进度条

if(configView->com_send(pSendBuf,psize) != psize)

{

m_downloadProgress->m_ctrlProgress.SetPos(10);

return -1;

}

else

{

for(int i = 0; i<=100;)

{

m_downloadProgress->m_ctrlProgress.SetPos(i);

i += 20;

Sleep(50);

}

SendMessage(m_downloadProgress->m_hWnd,WM_CLOSE,0,0);

}

return 0;

}

出现的问题:数据发送成功了,进度条也好使了,但是接收串口数据的事件不响应了

解决办法:将打开串口设置波特率等一系列对串口控件变量的操作提到线程的外面执行。应该是这些设置造成了什么影响

原来可以这样关闭对话框:SendMessage(m_downloadProgress->m_hWnd,WM_CLOSE,0,0);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: