微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > CVI中的事件一问

CVI中的事件一问

时间:12-13 整理:3721RD 点击:
CVI中没有PUSHDOWN这个事件,我现在想模拟PUSHDOWN这个事件
我的想法是用一个TIMER控件,在EVENT_TIME_TICK事件中判断COMMANDBUTTON的值
我是这样用的
GetCtrlAttribute (panelHandle, PANEL_Button_Add, ATTR_CTRL_VAL, &addval);
这个addval是什么类型的变量?找了在线帮助,介绍得相当笼统。没有讲是什么类型的?
还有COMMANDBUTTON按下去后他的这个值应该是多少?
或者就不应该用COMMANDBUTTON来实现?
还望高手赐教,谢谢!
.71

你期望得到什么值
.199

已经找到答案,可以在TIMER中使用getrelativemousestate()来查询鼠标左键是否按下
不,我就是问一问commandbutton的ATTR_CTRL_VAL是什么类型的数据,
帮助上没有讲,只是写的variable。
还有个低级的问题,CVI中有没有BOOL类型?
谢谢
.203

CVI应用的是比较标准的C来得,肯定有BOOL类型啦~
.158

谢谢,我现在该用BOOL判断,可是每次执行 BOOL值都是0,我把程序贴出来,请大家帮我
看看,用的是COMMANDBUTTON
int CVICALLBACK ADD (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
        {
        case EVENT_LEFT_CLICK:
            SetCtrlAttribute(panelHandle,PANEL_TIMER,ATTR_ENABLED,1);
            break;
        case EVENT_COMMIT:
            SetCtrlAttribute(panelHandle,PANEL_TIMER,ATTR_ENABLED,0);
            break;
        }
    return 0;
}
int CVICALLBACK DEC (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
        {
        case EVENT_LEFT_CLICK:
            SetCtrlAttribute(panelHandle,PANEL_TIMER,ATTR_ENABLED,1);
            break;
        case EVENT_COMMIT:
            SetCtrlAttribute(panelHandle,PANEL_TIMER,ATTR_ENABLED,0);
            break;
        }
    return 0;
}
int CVICALLBACK QUIT (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
    switch (event)
        {
        case EVENT_COMMIT:
            QuitUserInterface (0);
            break;
        }
    return 0;
}
int CVICALLBACK TIMERCB (int panel, int control, int event,
        void *callbackData, int eventData1, int eventData2)
{
//    int xCoordinate,yCoordinate,leftButtonDown,rightButtonDown,keyModifiers;
    BOOL addButtonVal,decButtonVal;
    switch (event)
        {
        case EVENT_TIMER_TICK:
            GetCtrlAttribute(panelHandle,PANEL_ADDBUTTON,ATTR_CTRL_VAL,&addBut
tonVal);
            GetCtrlAttribute(panelHandle,PANEL_DECBUTTON,ATTR_CTRL_VAL,&decBut
tonVal);
//            GetRelativeMouseState(panelHandle,PANEL_ADDBUTTON,&xCoordinate,&
yCoordinate, &leftButtonDown, &rightButtonDown, &keyModifiers);
            if(addButtonVal)
                SetCtrlVal(panelHandle,PANEL_NUMERIC,++i);
            if(decButtonVal)
                SetCtrlVal(panelHandle,PANEL_NUMERIC,--i);
            break;
        }
    return 0;
}
.203

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top