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

📄 sample7_1.c

📁 CVI教程,用于信号采集系统的多任务开发软件.学习简单,功能实用.
💻 C
字号:
///windows include file////#include <windows.h> #include <winreg.h>///cvi include file////#include <ansi_c.h>    #include <cvirte.h>		/* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample7_1.h"static int panelHandle;char FPfilename[100][260],ver[5]={"5.0"},subkey[250];int fileNum,changed=0;int ReadLibrary(void) ;void InitList(int num) ;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, "sample7_1.uir", PANEL2)) < 0)		return -1;		DisplayPanel (panelHandle);	RunUserInterface ();	return 0;}int CVICALLBACK Select (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	int ret;	char pathName[260];	switch (event)	{		case EVENT_COMMIT:		ret=FileSelectPopup ("c:\\", "*.fp", "*.fp,*.lfp", "选择驱动器文件",						 VAL_LOAD_BUTTON, 0, 1, 1, 0, pathName);		if(ret!=VAL_EXISTING_FILE_SELECTED)			   return 0;		changed=1;		strcpy( FPfilename[fileNum],pathName);		InsertListItem (panelHandle, PANEL_LISTBOX, fileNum, pathName,pathName);		fileNum++;		SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 0);		break;	}	return 0;}int CVICALLBACK Delete (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	int i,SelectIndex;	switch (event)	{		case EVENT_COMMIT:			changed=1;			GetCtrlIndex (panelHandle, PANEL_LISTBOX, &SelectIndex);  			DeleteListItem (panelHandle, PANEL_LISTBOX, SelectIndex, 1);			fileNum--;			if(fileNum==0)				SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 1);			for(i=SelectIndex;i<fileNum;i++)				strcpy(FPfilename[i],FPfilename[i+1]);  			break;	}	return 0;}int CVICALLBACK Apply (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	char temp[20]; 	int result,i,FileNameLen; 	HKEY  key;    	switch (event)	{		case EVENT_COMMIT: 			RegOpenKeyEx(HKEY_CURRENT_USER,subkey,0,KEY_ALL_ACCESS,&key);  			for(i=1;;i++)    		{    			sprintf(temp,"LibraryFPFile%d",i);    			result=RegDeleteValue( key,temp);     			if(result!=ERROR_SUCCESS)    				break;    		}    		for(i=1;i<fileNum+1;i++)    		{    			sprintf(temp,"LibraryFPFile%d",i);      			RegSetValueEx(key,temp,0,REG_SZ,FPfilename[i-1],strlen(FPfilename[i-1])+1);    		}    		RegCloseKey (key); 			break;	}	return 0;}int CVICALLBACK Cancel (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			QuitUserInterface (0);			break;	}	return 0;}int ReadLibrary(void){	char temp[20]; 	int result,i,FileNameLen; 	HKEY  key; 	RegOpenKeyEx(HKEY_CURRENT_USER,subkey,0,KEY_ALL_ACCESS,&key);    for(i=1;;i++)    {    	sprintf(temp,"libraryfpfile%d",i);    	FileNameLen=260;    	result=RegQueryValueEx(key,temp,NULL,NULL,FPfilename[i-1],&FileNameLen) ;    	if(result!=ERROR_SUCCESS)    	{    		i--;	    		break;    	}      } 	RegCloseKey (key); return i;}void InitList(int num){    int i=0;	DeleteListItem (panelHandle, PANEL_LISTBOX,0 ,-1 );      for(i=0;i<num;i++)		InsertListItem (panelHandle, PANEL_LISTBOX, i, FPfilename[i],FPfilename[i] ); 	SetActiveCtrl (panelHandle, PANEL_SELECT);	}int CVICALLBACK OK (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){	switch (event)	{		case EVENT_COMMIT:			GetCtrlVal (panelHandle, PANEL2_RING, ver);			sprintf(subkey,"Software\\National Instruments\\cvi\\%s\\libraries",ver);    			DiscardPanel(panelHandle);			panelHandle=LoadPanel (0, "sample7_1.uir", PANEL);			DisplayPanel (panelHandle); 			fileNum=ReadLibrary();			if(fileNum>0)				InitList(fileNum);			else				SetCtrlAttribute (panelHandle, PANEL_DELETE, ATTR_DIMMED, 1);			break;	}	return 0;}

⌨️ 快捷键说明

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