在对话框中一个button上的事件:create一个新的对话框,对话框上有一个进度条,一个clistbox,然后对它们进行操作
可是为什么先显示进度条,等进度条执行完了,listbox才出现呢
progDlg.Create(IDD_PROGRESSDLG_DIALOG);
    progDlg.ShowWindow(SW_SHOW);//显示窗口 CListBox* clb = (CListBox*)progDlg.GetDlgItem(IDC_LIST1);
CProgressCtrl* cpc = (CProgressCtrl*)progDlg.GetDlgItem(IDC_PROGRESS1); clb->AddString("haha"); cpc->SetRange(0, 100);
cpc->SetStep(1);
for (int i = 0; i<100; i++)
{
cpc->StepIt();
Sleep(10);
} clb->AddString("hehe");

解决方案 »

  1.   

    因为你是在循环中StepIt,所以阻塞了窗口的消息循环。用定时器来做。
      

  2.   

    用定时器之后,怎么能让listbox和进度条有关联呢
    我现在是把StepIt函数放到ontimer()里了,但是listbox一下子就填完了,而进度条还在自己跑
    达不到我原来的目的了
    比如我想在进度条跑到某一个位置,然后listbox就addstring一下
      

  3.   

    下面这段代码顺序执行下去,但是得到的结果却是乱序的,怎么回事呢
    也就是说比如timer1里面addstring("1")
    timer2里面addstring("2");
    timer3里面addstring("3");
    但是显示的结果就不一定是123,经常是321
    SetTimer(timer1, 100, NULL);
    SetTimer(timer2, 100, NULL);
    SetTimer(timer3, 100, NULL);
      

  4.   

    请问shakaqrj 
    换成INSERT是什么意思啊
      

  5.   

    CListBox 有一个SORT属性,选中它会自动排序,显示顺序就会跟插入顺序不一致。不要自动排序点掉它就行了。在Styles属性里面。