我用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的帮助文件中也没有找到与之相关的内容。请高手指点,谢谢。