NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

LabWindwos /CVI 状态条中显示图标的问题

我用LabWindwos/CVI 2013编写了一个状态栏功能的简单测试程序,在一个面板上放置 了一个ActiveX的statusbar控件。statusbar分成了两个PANEL,第一个PANEL中添加了一个图标,第二个PANEL没有加载图标。我想实现的功能是动态的把第一个PANEL的图标加载到第二个PANEL中显示出来。用下面的程序进行测试,结果是statusbar的第二个PANEL无法显示图标。具体代码如下:

#include "mscomctl.h"
#include <formatio.h>
#include <cvirte.h>
#include <userint.h>
#include "StatusBar.h"

static MSComctlLibObj_IPanel SubPanel;
static CAObjHandle ObjectHandle;

static MSComctlLibObj_IPictureDisp pictureHandel
static int panelHandle;
int main (int argc, char *argv[])
{
       VARIANT var;  

       if (InitCVIRTE (0, argv, 0) == 0) return -1; 
       if ((panelHandle = LoadPanel (0, "StatusBar.uir", PANEL)) < 0) return -1;
      GetObjHandleFromActiveXCtrl (panelHandle, PANEL_STATUSBAR, &ObjectHandle);
      var=CA_VariantInt(1);
      MSComctlLib_IPanelsGetControlDefault(ObjectHandle,NULL,var,&SubPanel);
      MSComctlLib_IPanelGetPicture(SubPanel,NULL,&pictureHandel);

      var=CA_VariantInt(2);
      MSComctlLib_IPanelsGetControlDefault(ObjectHandle,NULL,var,&SubPanel);
      MSComctlLib_IPanelSetByRefPicture(SubPanel,NULL,pictureHandel);

      DisplayPanel (panelHandle);
      RunUserInterface ();
      DiscardPanel (panelHandle);
     return 0;
}

是程序中哪里出了问题导致的显示结果不对?网上也找不到相关资料,NI的帮助文件中也没有找到与之相关的内容。请高手指点,谢谢。

0 项奖励
1 条消息(共 1 条)
2,570 次查看