CVI 函数

GetCtrlVal(panel,control,&XXX);  获取面板当前事件的控件的状态,control意思为改事件控件;

GetCtrlVal(panel,PANEL_RING_COM,&XXX);  获取面板某控件的数据,

SetCtrlAttribute (PANEL, PANEL_sw_com, ATTR_LABEL_TEXT, "XXX"); 为面板控件显示的文本设置一个值.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LabWindows/CVI实现鼠标左键点击面板右上角的X退出程序的方法如下: 首先,需要在面板的控件区添加一个自定义控件,用于绘制X按钮。 然后,在该自定义控件的“绘制”回调函数中,使用GDI函数绘制X按钮。 接着,在该自定义控件的“事件”回调函数中,判断鼠标是否点击了X按钮,如果点击了,则调用退出程序的函数。 下面是完整代码: ``` #include <cvirte.h> #include <userint.h> #include <utility.h> #include <windows.h> #define PANEL_WIDTH 400 #define PANEL_HEIGHT 300 static int panelHandle; static int xButtonHandle; // 绘制X按钮 int CVICALLBACK XButtonPaintCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_PAINT: { // 获取自定义控件的DC HDC hDC = GetDC(control); if (hDC) { // 绘制X按钮 RECT rect; GetClientRect(control, &rect); HPEN hPen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0)); HGDIOBJ hOldPen = SelectObject(hDC, hPen); MoveToEx(hDC, rect.left, rect.top, NULL); LineTo(hDC, rect.right, rect.bottom); MoveToEx(hDC, rect.right, rect.top, NULL); LineTo(hDC, rect.left, rect.bottom); SelectObject(hDC, hOldPen); DeleteObject(hPen); ReleaseDC(control, hDC); } } break; } return 0; } // 处理X按钮的点击事件 int CVICALLBACK XButtonEventCallback(int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { switch (event) { case EVENT_LEFT_CLICK: { // 获取鼠标点击位置 int x = eventData1; int y = eventData2; // 判断是否点击了X按钮 RECT rect; GetClientRect(control, &rect); if (PtInRect(&rect, Point(x, y))) { // 退出程序 QuitUserInterface(0); } } break; } return 0; } int main(int argc, char *argv[]) { if (InitCVIRTE(0, argv, 0) == 0) return -1; panelHandle = LoadPanel(0, "MyPanel.uir", PANEL); // 添加自定义控件,用于绘制X按钮 xButtonHandle = NewCtrl(panelHandle, CTRL_USER, "XButton"); SetCtrlAttribute(panelHandle, xButtonHandle, ATTR_LEFT, PANEL_WIDTH - 25); SetCtrlAttribute(panelHandle, xButtonHandle, ATTR_TOP, 5); SetCtrlAttribute(panelHandle, xButtonHandle, ATTR_WIDTH, 20); SetCtrlAttribute(panelHandle, xButtonHandle, ATTR_HEIGHT, 20); SetCtrlAttribute(panelHandle, xButtonHandle, ATTR_VISIBLE, TRUE); InstallCtrlCallback(panelHandle, xButtonHandle, XButtonPaintCallback, NULL); InstallCtrlCallback(panelHandle, xButtonHandle, XButtonEventCallback, NULL); DisplayPanel(panelHandle); RunUserInterface(); DiscardPanel(panelHandle); CloseCVIRTE(); return 0; } ``` 在这个例子中,我们使用了一个自定义控件来绘制X按钮,并处理了该控件的“绘制”和“事件”回调函数,实现了鼠标左键点击面板右上角的X退出程序的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值