1、效果如下图
2、首先准备好对应的图表信息,将图标全部放入一个新建的面板中,命名为ICOPANEL
3、工具栏是要与菜单栏一一对应的,所以新建一个菜单栏
4、编程。添加toolBar.ftp,并引用头文件toolBar.h
#include "toolbar.h"
#include
#include
#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)
{
}