回 帖 发 新 帖 刷新版面

主题:关于窗口控件的重画

最近在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里面该怎么处理这个问题。

先谢谢了!

回复列表 (共1个回复)

沙发

问题已经解决,可使用dlgflush函数
在需要刷新窗口控件的地方
call dlgflush(dlg)
dlg是窗口类型,具体可参考帮助。

谢谢关注!

我来回复

您尚未登录,请登录后再回复。点此登录或注册