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

📄 textlisttree.c

📁 labview程序编程技巧演示
💻 C
字号:
#include <formatio.h>
#include <cvirte.h>		
#include <userint.h>
#include "textlisttree.h"

static int panelHandle;

//主程序
int main (int argc, char *argv[])
{
	if (InitCVIRTE (0, argv, 0) == 0)
		return -1;	/* out of memory */
	if ((panelHandle = LoadPanel (0, "textlisttree.uir", PANEL)) < 0)
		return -1;
	DisplayPanel (panelHandle);
	RunUserInterface ();
	DiscardPanel (panelHandle);
	return 0;
}

//"转移"按钮的回调函数
int CVICALLBACK  transfer(int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int  maxitems;
	int  i;
    char label[10];
    char Tag[32];
	int  value;
    int  checked; 
	static int  j=0,k;
	switch (event)
	{
		case EVENT_COMMIT:
			
			//清除制定列表框
			ClearListCtrl (panelHandle, PANEL_TREE);
			
			//向文本框的末尾添加一行文本
			InsertTextBoxLine (panelHandle, PANEL_TEXTBOX, -1, "转移并显示目录");
			j=0;
			
			//获得列表框项目的数目
			GetNumListItems (panelHandle, PANEL_LISTBOX, &maxitems);
            for (i=0;i<maxitems;i++)
			{
            	//获得列表框中指定项目的选中状态
				IsListItemChecked (panelHandle, PANEL_LISTBOX, i, &checked);
                
				//如果该项目被选中,则执行以下操作
				if (checked) 
				{
                  j = j + 1;
				  
				  //获得指定索引项目的value值
                  GetValueFromIndex (panelHandle, PANEL_LISTBOX, i, &value);
				  
				  //获得指定索引项目的标题
				  GetLabelFromIndex (panelHandle, PANEL_LISTBOX, i, label);
				  
				  //将选中的项目插入到指定的树控件
				  InsertTreeItem (panelHandle, PANEL_TREE, VAL_SIBLING, j-2, VAL_NEXT, label, "", Tag, value);
                } 
			 }
			break;
	}
	return 0;
}

//"清除已选目录"按钮的回调函数
int CVICALLBACK clear (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			
			//清除控件的内容
			ClearListCtrl (panelHandle, PANEL_TREE); 
			
			//向文本框末尾插入一行文本
			InsertTextBoxLine (panelHandle, PANEL_TEXTBOX, -1, "清除已选目录"); 
			break;
	}
	return 0;
}

int CVICALLBACK insert (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{

    char newitem[10];
    
	switch (event)
	{
		case EVENT_COMMIT:
			InsertTextBoxLine (panelHandle, PANEL_TEXTBOX, -1, "添加目录");   
			GetCtrlVal (panel, PANEL_STRING_INSERT, newitem);
		
			//向列表框插入新的项目
			InsertListItem (panelHandle, PANEL_LISTBOX, -1, newitem, 0);
			break;
	}
	return 0;
}

int CVICALLBACK delete (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	int maxitems;
	char removeitem[10];
	int i;
	char label[10];    
	
	switch (event)
	{
		case EVENT_COMMIT:
		     InsertTextBoxLine (panelHandle, PANEL_TEXTBOX, -1, "移除目录");   
			 GetCtrlVal (panelHandle, PANEL_STRING_DELETE, removeitem);
			 GetNumListItems (panelHandle, PANEL_LISTBOX, &maxitems);
             for (i=0;i<maxitems;i++)
			 {
             	
				 //获得指定索引的项目标题
				 GetLabelFromIndex (panelHandle, PANEL_LISTBOX, i, label);
              	
				 //判断该标题是否和指定的内容相一致
				 if (CompareStrings (label, 0, removeitem, 0, 1) == 0)
                 {
                	//删除列表框指定项目
					DeleteListItem (panelHandle, PANEL_LISTBOX, i--, 1);
                 	maxitems--;
                 }
             }
			break;
	}
	return 0;
}
int CVICALLBACK QuitCallback (int panel, int control, int event,
		void *callbackData, int eventData1, int eventData2)
{
	switch (event)
	{
		case EVENT_COMMIT:
			QuitUserInterface (0);
			break;
	}
	return 0;
}

⌨️ 快捷键说明

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