zoukankan      html  css  js  c++  java
  • LabWindows/CVI(四):基本控件文本框、列表框使用及编程实例

    1、Text文本框
      Create ——> Text ——> String 、Text Message 、Text Box 控件

    2、列表框(List Box)、树控件(Tree)、表格控件(Table)
      Create ——> Lists&Tables ——> List BOX 、Tree 、Table

    控件功能函数:
      Library ——> User Interface Library ——> Controls/Grqaphs/Strip Charts ——> General Functions

        New Control    :NewCtrl    新建控件,穿件一个新控件,并返回该控件的ID值
        Duplicate Control    :DuplicateCtrl    复制控件,
        Discard Control    :DiscardCtrl    删除控件
        Get Active Control    :GetActiveCtrl    获得当前激活控件    
        Set Active Control    :SetActiveCtrl    激活制定控件
        Default Control Value    :DefaultCtrl    设置控件默认值,恢复指定面板控件的默认值
        Get Control Value    :GetCtrlVal    获取控件当前值
        Set Control Value    :SetCtrlVal    设置控件当前值
        Get Control Attribute    :GetCtrlAttribute    获取控件属性值
        Set Control Attribute    :SetCtrlAttribute    设置控件属性值
        Get Control Bounding Rectangle    :GetCtrlBoundingRect    获取控件的位置坐标

    3、文本框使用编程实例

     

    #include <formatio.h>
    #include <cvirte.h>        
    #include <userint.h>
    #include "控件2.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, "控件2.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;
        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);
                    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,"添加目录");
                //得到指定String控件的值
                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;
    }
    文本框使用编程实例
  • 相关阅读:
    Java之Socket与HTTP区别
    TCP/IP 、HTTP和SOCKET
    远程仓库(GitHub)的使用
    Git 中的一些其他常用命令
    Git 中关于一次完整的提交的命令
    Git的安装及配置
    网络体系应用层之万维网、http协议
    网络体系应用层之DNS系统
    phpstudy的80端口被占用问题
    网络体系之TCP/IP模型
  • 原文地址:https://www.cnblogs.com/lotuses/p/11431821.html
Copyright © 2011-2022 走看看