📄 textlisttree.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 + -