+ -
当前位置:首页 → 问答吧 → 控件问题!进度条不移动!

控件问题!进度条不移动!

时间:2011-12-18

来源:互联网


我是个socket的程序,一端发送文件,一端接收文件!
但是我发送端的进度条要移动,接收端的进度条就不移动 ,不知道为什么! 我贴出代码,麻烦看看!


小弟 感谢!


C/C++ code

进度条移动代码:

LRESULT CTalkDialog::OnRecvProgressMove(WPARAM wParam,LPARAM lParam)
{
    
    m_RecvProgressCtrl[m_RecvCount-1]->SetRange(0,m_FileCliHead.FileLength);
    m_RecvProgressCtrl[m_RecvCount-1]->OffsetPos(1200);
    if(m_RecvProgressCtrl[m_RecvCount-1]->GetPos()==m_FileCliHead.FileLength)
    {
        m_RecvProgressCtrl[m_RecvCount-1]->SetPos(0);
        //MessageBox(L"传输成功");
    }
    return 0;
}


发送进度条移动消息的代码,这段代码在一个while循环里面:

if(pTalkDialog->m_RecvOnly==1)//接收文件的头部
                        {
                            recv((pTalkDialog->m_AllSocket).fd_array[i],(char*)(&(pTalkDialog->m_FileSerHead)),sizeof(pTalkDialog->m_FileSerHead),0);
                            pTalkDialog->m_RecvOnly++;
                            pTalkDialog->PostMessage(WM_ModifySerDlg);  //发送自定义消息

                        }
                        if(pTalkDialog->m_StartRecvFlag==true)//当下面的send发送了确认接收后,这个IF判断为真,开始接收文件
                        {

                            pTalkDialog->RecvData((pTalkDialog->m_AllSocket).fd_array[i]);
                            WaitForSingleObject(Next_Recv_Event,INFINITE);
                            
                        }


作者: qweewqpkn   发布时间: 2011-12-18

你应该是在线程里发送消息到UI界面,然后在UI的自定义消息响应函数中操作进度条的吧,你Debug下看看自定义消息响应函数响应了没有?进度条的Pos对不?

作者: VisualEleven   发布时间: 2011-12-18

引用 1 楼 visualeleven 的回复:

你应该是在线程里发送消息到UI界面,然后在UI的自定义消息响应函数中操作进度条的吧,你Debug下看看自定义消息响应函数响应了没有?进度条的Pos对不?


成功解决了! 但是 发送端发送数据很快 (send函数),进度条的移动和实际发送数据量不匹配 怎么解决呢?

作者: qweewqpkn   发布时间: 2011-12-18

热门下载

更多