NIMDA 发表于 2009-12-12 09:21:35

[求助]关于进度条与timer控件

紧急求助各位:
进度条面板的timer控件回调函数如下:
int CVICALLBACK PrTimerCallback (int panel, int control, int event,
                void *callbackData, int eventData1, int eventData2)
{                  
        static float pfvalue = 1.0;
        switch (event)
        {
                case EVENT_TIMER_TICK:
                        //设置进度条的最小值
                        MSComctlLib_IProgressBarSetMin (objecthandle, NULL, 0.0);
                        //设置进度条的最大值
                        MSComctlLib_IProgressBarSetMax (objecthandle, NULL, 10.0);   
                        //设置进度条上的鼠标显示模式
                        MSComctlLib_IProgressBarSetMousePointer (objecthandle, NULL, MSComctlLibConst_ccHourglass);
                        //设置递增进度
                        MSComctlLib_IProgressBarSetValue (objecthandle, NULL, pfvalue++);
                                          //以下代码出现问题————————>>>>
                if(pfvalue=10.0)
                        {
                         SetCtrlAttribute (progressPanel, PANELPROGR_TIMERPR, ATTR_ENABLED, 0);
                       RemovePopup (0);
                        SetCtrlAttribute (diagnosePanel, PANELDIAGN_DIAGNOSE, ATTR_DIMMED, 0);
                        InsertTextBoxLine(diagnosePanel,PANELDIAGN_TEXTBOX,-1,"…………");
                        InsertTextBoxLine(diagnosePanel,PANELDIAGN_TEXTBOX,-1,"测试数据已获取 data acquired");
                        InsertTextBoxLine(diagnosePanel,PANELDIAGN_TEXTBOX,-1,"可以开始<故障诊断> ");
                        SetCtrlAttribute (diagnosePanel, PANELDIAGN_TESTSTOP, ATTR_DIMMED, 1);
                        }
                       
                        break;
        }
        return 0;
}

问题是:怎么进度条才刚开始执行,if 的条件(pfvalue=10.0)就满足了??!!

jackielau 发表于 2010-4-12 18:20:49

if(pfvalue=10.0)是不安全的!!!

jackielau 发表于 2010-4-12 18:21:57

应该用
if( (pfvalue>10.0-0.X)&&(pfvalue<10.0+0.X) )

okwendell 发表于 2010-10-9 11:11:53

if(pfvalue=10.0)不对。这个是判断赋值成功否。
应该是if(pfvalue==10.0)
页: [1]
查看完整版本: [求助]关于进度条与timer控件