当线程建立完毕,发送信号给线程函数进行处理的时候, 我用按钮控件触发线程函数,,当我多次单击或者修改触发时间就会有闪烁,感觉有多个线程在同时操作一个进度条控件,有很强的闪烁感觉,附上代码 求高手直接让他不闪烁
为什么会这样呢?struct threadInfo
{
int nMilliSecond;
CProgressCtrl* pctrlProgress;
};void CJdtDlg::OnButton1()
{ pThread=AfxBeginThread(ThreadFunc,&Info);}UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int x=0;x<100;x++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(x);
Sleep(nTemp);
}
return 0;
}
为什么会这样呢?struct threadInfo
{
int nMilliSecond;
CProgressCtrl* pctrlProgress;
};void CJdtDlg::OnButton1()
{ pThread=AfxBeginThread(ThreadFunc,&Info);}UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int x=0;x<100;x++)
{
int nTemp=pInfo->nMilliSecond;
pInfo->pctrlProgress->SetPos(x);
Sleep(nTemp);
}
return 0;
}
解决方案 »
- For 循环为题
- 对话框的类没在ClassView中显示
- 哪位大侠推荐一下截取包的工具
- delphi 程序 sendmessage(WM_COPYDATA)发到 win32 程序中接收时的问题,帮忙!!!
- 请高手指点 ,怎样实现键盘按键自定义??例如:按A 显示B ,知道的高手请进~~~~
- 求助,在Berkeley DB上开发一个应用,大家有什么建议么?(在CSDN上找了半天,也没搞定)
- 初级问题:如何对话框中的某一个编辑框在弹出对话框时得到焦点?
- 有关UPDATE_COMMAND_UI一问!!
- 求助:如何用VC获得淘宝交易数据
- ADO非常奇怪的一个问题..
- 如何获取一个进程执行过程中最大内存使用量
- 关闭串口抛异常
线程结束后就GetDlgItem(IDC_BUTTON1)->EnableWindow(TRUE);
UINT ThreadFunc(LPVOID lpParam)
{
threadInfo* pInfo=(threadInfo*)lpParam;
for(int x=0;x<100;x++)
{
int nTemp=pInfo->nMilliSecond;//pInfo->pctrlProgress->SetPos(x);
pInfo->PostMessage(WM_MYSETPOS,x,0);//然后在窗体类里处理WM_MYSETPOS自定义消息
Sleep(nTemp);
}
return 0;
}