主题:关于窗口控件的重画
最近在Intel Visual Fortran里面编了一个windows程序,用到了进度条(Progress bar)来指示当前的程序进度。
程序大致流程是,在对话框中输入参数,然后点按钮,按钮接受到click事件,执行一个循环:
!初始化进度条的最大最小值
do i=1, total_num
!程序体
!修正进度条当前的值
retlog=dlgset(dlg, ID_progress, i, dlg_position)
enddo
现在的问题是,在循环过程中,进度条并没有显示出动画效果,我猜应该是控件的重画没有。我查了一些资料,提到了dlg_update这个东西,但是没说具体该怎么用。
我之前在matlab编程也遇到了同样的问题,明明是在循环里面画图的,但是最后图却是在程序结束后一下子出来的。matlab里面可以用drawnow实现绘图窗口的刷新。但是不知道fortran里面该怎么处理这个问题。
先谢谢了!
程序大致流程是,在对话框中输入参数,然后点按钮,按钮接受到click事件,执行一个循环:
!初始化进度条的最大最小值
do i=1, total_num
!程序体
!修正进度条当前的值
retlog=dlgset(dlg, ID_progress, i, dlg_position)
enddo
现在的问题是,在循环过程中,进度条并没有显示出动画效果,我猜应该是控件的重画没有。我查了一些资料,提到了dlg_update这个东西,但是没说具体该怎么用。
我之前在matlab编程也遇到了同样的问题,明明是在循环里面画图的,但是最后图却是在程序结束后一下子出来的。matlab里面可以用drawnow实现绘图窗口的刷新。但是不知道fortran里面该怎么处理这个问题。
先谢谢了!