我在做一个图像处理方面的程序,其中有图像旋转,旋转的时间比较长(图片是A1大小的,可能时间比较长),所以想用个动态画面做提示,可是在旋转的过程中,动态画面所在的对话框不能够获得运行?
这个问题是不是要用多线程(没有做过线程方面的编程?唉,不知怎么办)?还是可以用其他的方法?高手们给个思路

解决方案 »

  1.   

    感觉倒不是CProgrssCtrl控件不行,而是在旋转函数运行时,CProgrssCtrl控件怎么和旋转动作相结合,要用多线程或者消息机制吗
      

  2.   

    CPrintStatus dlgPrintStatus(pParent);//CPrintStatus为含有CProgrssCtrl控件的对话框类 dlgPrintStatus.ShowWindow(SW_SHOW);
    dlgPrintStatus.UpdateWindow();
    dlgPrintStatus.wndProg.SetRange(0, iPageTot);
    dlgPrintStatus.wndProg.SetPos(0);
    ....位图旋转过程
        旋转循环
    dlgPrintStatus.wndProg.SetPos(i);//在弹出的对话框中进度条根本不动,好像整个对话框都处于“不可操作”状态
    dlgPrintStatus.wndProg.UpdateWindow();
     循环结束
      

  3.   

    把CProgrssCtrl作为一个类指针传递给你做旋转的函数,在函数中调用 pProgressCtrl->StepIt()
      

  4.   

    前面的问题解决了,谢谢大家的支持。现在又遇见一个棘手的问题,我拼合的一张图片(bmp),30多M的大小(尺寸是A1图纸大小),怎么打印不了
    是不是图片太大了?还是图片打印要注意什么特殊问题吗?
      

  5.   

    打印的问题要注意CDC设置的模式,因为屏幕设备和打印机设备大小是不一样的,
      

  6.   

    我得到了打印机的CDC,我现在是在一般用的打印机可以打印
    但是在那种滚筒式的打图机(打A!1,A0))好像就不可以了