⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample4_10.c

📁 这是一个应用于labwindows/cvi软件的例子,是一个动画图形
💻 C
字号:
#include "pwctrl.h"#include "animate.h"#include "easytab.h"#include "toolbar.h"#include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample4_10.h"#define IMAGE_HELP    "buttons/help.ico"       #define IMAGE_GO  "buttons/go.ico"#define IMAGE_STOP "buttons/stop.ico"#define IMAGE_ANIMATEPROPERTY "buttons/bydate.ico"int panelHandle,panelTemp,panelTab1,panelTab2;int tabCtrl,animateCtrl,passwordCtrl;    ToolbarType gToolbar;  int cycle=0,check[9]={1,1,1,1,1,1,1,1,1};double interval=0.1;ToolbarType InstallToolBar(int panel);  int main (int argc, char *argv[]){	if (InitCVIRTE (0, argv, 0) == 0)	/* Needed if linking in external compiler; harmless otherwise */		return -1;	/* out of memory */	if ((panelHandle = LoadPanel (0, "sample4_10.uir", PANEL)) < 0)		return -1;	SetCtrlAttribute (panelHandle, PANEL_QUIT, ATTR_VISIBLE, 0);     		gToolbar=InstallToolBar(panelHandle);		animateCtrl=AnimateCtrl_ConvertFromPictRing(panelHandle,  PANEL_PICTURERING); 	AnimateCtrl_SetAttribute (panelHandle, animateCtrl, ATTR_ANIMATE_FRAME_INTERVAL,0.1);	AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_STOP_ON_LAST_FRAME, 1);		DisplayPanel (panelHandle);	RunUserInterface ();		Toolbar_Discard(gToolbar);    gToolbar = 0;	return 0;}void CVICALLBACK Quit (int menuBar, int menuItem, void *callbackData,		int panel){	QuitUserInterface (0);}void CVICALLBACK animateProperty (int menuBar, int menuItem, void *callbackData,		int panel)																			  {	panelTemp=LoadPanel(0, "sample4_10.uir", PANELPW);	passwordCtrl=PasswordCtrl_ConvertFromString (panelTemp, PANELPW_PASSWORD);	PasswordCtrl_SetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_MASK_CHARACTER, '*');	PasswordCtrl_SetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_MAX_LENGTH, 8);	InstallPopup(panelTemp);  }void CVICALLBACK help (int menuBar, int menuItem, void *callbackData,		int panel){	MessagePopup("Help","This is the sample program for toolbar,animation,easy tab&password");}ToolbarType InstallToolBar(int panel){    ToolbarType toolbar;    int i;       if (Toolbar_New (panel, GetPanelMenuBar(panel), "", 0, 0, 1, 1,                             &toolbar) < 0)        return 0;   Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL,                        kNoCallback, 0, NULL, NULL, NULL);                           Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "开始运动",                        kMenuCallback, MENU_FILE_RUN, NULL, NULL, IMAGE_GO);   Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "停止运动",                        kMenuCallback, MENU_FILE_STOP, NULL, NULL, IMAGE_STOP);   Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL,                        kNoCallback, 0, NULL, NULL, NULL);    Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "动画属性",                        kMenuCallback, MENU_TOOL_ANIMATEPROPERTY, NULL, NULL, IMAGE_ANIMATEPROPERTY);   Toolbar_InsertItem (toolbar, END_OF_LIST, kSeparator, 1, NULL,                        kNoCallback, 0, NULL, NULL, NULL);   Toolbar_InsertItem (toolbar, END_OF_LIST, kCommandButton, 1, "帮助信息",                        kMenuCallback, MENU_HELP, NULL, NULL, IMAGE_HELP);   Toolbar_Display (toolbar);    return toolbar;}int CVICALLBACK Quit1 (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			QuitUserInterface (0);     			break;	}	return 0;}int CVICALLBACK Done (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	int i;	char path[255]={""},temp[10];	switch (event)	{		case EVENT_COMMIT:			////////////////			GetCtrlVal (panelTab2, ANIMATE2_BINARYSWITCH, &cycle);			AnimateCtrl_SetAttribute (panelHandle, animateCtrl, ATTR_ANIMATE_STOP_ON_LAST_FRAME, cycle==0);			GetCtrlVal (panelTab2, ANIMATE2_NUMERIC, &interval);			AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_FRAME_INTERVAL, interval);			for(i=0;i<9;i++)			{			 	GetCtrlVal (panelTab1, 10-i, &check[i]);			 	if(check[i])				{			 	 	sprintf(temp,"(F=%d)",i);			 		strcat(path,temp);				}			}			AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_PATH, path);						DiscardPanel(panelTemp);  			break;	}	return 0;}int CVICALLBACK Password (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){   	char password[15];	int i;	switch (event)	{		case EVENT_COMMIT:			PasswordCtrl_GetAttribute (panelTemp, passwordCtrl, ATTR_PASSWORD_VAL, password);			if(strcmp(password,"11111111")==0)			{			DiscardPanel(panelTemp);  						panelTemp=LoadPanel(0, "sample4_10.uir", PANELTAB);				tabCtrl = EasyTab_ConvertFromCanvas(panelTemp, PANELTAB_CANVAS);  			EasyTab_LoadPanels (panelTemp, tabCtrl, 1, "sample4_10.uir", __CVIUserHInst, ANIMATE1, &panelTab1,        			     ANIMATE2, &panelTab2,0);       		//init data			SetCtrlVal (panelTab2, ANIMATE2_BINARYSWITCH, cycle);			SetCtrlVal (panelTab2, ANIMATE2_NUMERIC, interval);			for(i=0;i<9;i++)			 	SetCtrlVal (panelTab1, 10-i, check[i]); 			InstallPopup(panelTemp); 			}			else			{			MessagePopup("ERROR","Your input is error");			DiscardPanel(panelTemp); 			}			break;	}	return 0;}int CVICALLBACK Cancel (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			DiscardPanel(panelTemp);  			break;	}	return 0;}int CVICALLBACK Run (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 1);    			break;	}	return 0;}int CVICALLBACK Stop (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 0);    			break;	}	return 0;}void CVICALLBACK Run1 (int menuBar, int menuItem, void *callbackData,		int panel){	AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 1);}void CVICALLBACK Stop1 (int menuBar, int menuItem, void *callbackData,		int panel){	AnimateCtrl_SetAttribute (panelHandle,animateCtrl , ATTR_ANIMATE_ENABLED, 0);}int CVICALLBACK Animation (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_RIGHT_CLICK:			animateProperty(0,0,0,0);			break;	}	return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -