cvi创建工具栏

1、效果如下图
在这里插入图片描述
2、首先准备好对应的图表信息,将图标全部放入一个新建的面板中,命名为ICOPANEL
在这里插入图片描述
3、工具栏是要与菜单栏一一对应的,所以新建一个菜单栏
在这里插入图片描述
4、编程。添加toolBar.ftp,并引用头文件toolBar.h

#include "toolbar.h"
#include <cvirte.h>		
#include <userint.h>

#include "1.h"
#include "ico.h"

static int panelHandle;
static int icoPanel;
static int panelHandle2;
static int menubarHandle;
ToolbarType toolbarHandle;

int CreateToolbar()
{
	int i = 0;
	int bitmapID;  
		
	if ((icoPanel = LoadPanel (0, "ico.uir", ICOPANEL)) < 0)
	return -1;
	
	/**Creates a new toolbar.**/
	Toolbar_New (panelHandle, menubarHandle, "toolBar", 0, 0, 1, 1, &toolbarHandle); 
	
	//插入两条分隔符
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kSeparator, 1, "", kMenuCallback, 0, 0, 0, "");				
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kSeparator, 1, "", kMenuCallback, 0, 0, 0, "");	
	
	i=3;
	//插入菜单按钮
	GetCtrlDisplayBitmap (icoPanel, ICOPANEL_PICTURE_NEW, 0, &bitmapID); //从ico界面获取图标
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kCommandButton, 1, "add(__N)", kMenuCallback, MENUBAR_MENU1_ITEM1, 0, 0, NULL);		
	Toolbar_SetItemAttribute (toolbarHandle, i++, TOOLBAR_ATTR_BUTTON_BITMAP,bitmapID );//添加图标
	
	GetCtrlDisplayBitmap (icoPanel, ICOPANEL_PICTURE_OPEN, 0, &bitmapID);
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kCommandButton, 1, "sub(__O)", kMenuCallback, MENUBAR_MENU1_ITEM2, 0, 0, NULL);	
	Toolbar_SetItemAttribute (toolbarHandle, i++, TOOLBAR_ATTR_BUTTON_BITMAP,bitmapID );
	
	GetCtrlDisplayBitmap (icoPanel, ICOPANEL_PICTURE_SAVE, 0, &bitmapID);
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kCommandButton, 1, "y(__S)", kMenuCallback, MENUBAR_MENU2_ITEM3, 0, 0, NULL);	
	Toolbar_SetItemAttribute (toolbarHandle, i++, TOOLBAR_ATTR_BUTTON_BITMAP,bitmapID );
	
	GetCtrlDisplayBitmap (icoPanel, ICOPANEL_PICTURE_SAVEAS, 0, &bitmapID);
	Toolbar_InsertItem (toolbarHandle, END_OF_LIST, kCommandButton, 1, "n(__A)", kMenuCallback, MENUBAR_MENU2_ITEM4, 0, 0, NULL);	
	Toolbar_SetItemAttribute (toolbarHandle, i++, TOOLBAR_ATTR_BUTTON_BITMAP,bitmapID );
	
	
	
	
	Toolbar_Display (toolbarHandle);   
	return 0;
}


int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "1.uir", PANEL)) < 0)
		return -1;
	if ((panelHandle2 = LoadPanel (0, "1.uir", PANEL_2)) < 0)
		return -1;
	
	 menubarHandle =  LoadMenuBar (panelHandle, "1.uir", MENUBAR);
	
	 CreateToolbar();

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

void CVICALLBACK addcallback (int menuBar, int menuItem, void *callbackData,
		int panel)
{
	printf("add\r\n");
}

void CVICALLBACK subcallback (int menuBar, int menuItem, void *callbackData,
		int panel)
{
}

void CVICALLBACK yescallback (int menuBar, int menuItem, void *callbackData,
		int panel)
{
}

void CVICALLBACK nocallback (int menuBar, int menuItem, void *callbackData,
		int panel)
{
}

猜你喜欢

转载自blog.csdn.net/qq_35439171/article/details/88617449
今日推荐