📄 sample4_7.c
字号:
#include <ansi_c.h>#include <cvirte.h> /* Needed if linking in external compiler; harmless otherwise */#include <userint.h>#include "sample4_7.h"static int panelHandle;double datapoints[100]; int line_color=0x33FF99, line_style=0;int shape_color=0x0,shape_style=0,shapefill_mode=0;int cursor_number=1;int main (int argc, char *argv[]){ int i; if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */ for (i=0; i<100; i++) datapoints[i] = 100.0 * rand() / RAND_MAX; if ((panelHandle = LoadPanel (0, "sample4_7.uir", PANEL)) < 0) return -1; DisplayPanel (panelHandle); RunUserInterface (); return 0;}int CVICALLBACK Shutdown (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: QuitUserInterface (0); break; } return 0;}int CVICALLBACK Graph (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ double x,y; int plothandle, index; if (event == EVENT_COMMIT) { GetGraphCursor (panelHandle, PANEL_GRAPH, cursor_number, &x, &y); GetGraphCursorIndex (panelHandle, PANEL_GRAPH, cursor_number, &plothandle, &index); SetCtrlVal (panelHandle, PANEL_XREADOUT, x); SetCtrlVal (panelHandle, PANEL_YREADOUT, y); SetCtrlVal (panelHandle, PANEL_INDEX, index); } return 0;}int CVICALLBACK PlotCurve (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, 1); PlotY (panelHandle, PANEL_GRAPH, datapoints, 100, VAL_DOUBLE, line_style, VAL_EMPTY_SQUARE, VAL_SOLID, 1, line_color); break; } return 0;}int CVICALLBACK LineColor (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_LINECOLOR, &line_color); PlotCurve (0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}int CVICALLBACK LineStyle (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_LINESTYLE, &line_style); PlotCurve (0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}int CVICALLBACK PlotShape (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ int color_fill; switch (event) { case EVENT_COMMIT: if (shapefill_mode) color_fill = VAL_TRANSPARENT; else color_fill = shape_color; DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, 1); switch (shape_style) { case 0 : PlotRectangle (panelHandle, PANEL_GRAPH, 20, 20, 50, 50, shape_color, color_fill); break; case 1 : PlotOval (panelHandle, PANEL_GRAPH, 20, 40, 50, 50, shape_color, color_fill); break; case 2 : PlotArc (panelHandle, PANEL_GRAPH, 20, 20, 50, 50, 1500, 900, shape_color, color_fill); break; case 3 : PlotPoint (panelHandle, PANEL_GRAPH, 44, 66, VAL_EMPTY_SQUARE, shape_color); break; case 4 : PlotText (panelHandle, PANEL_GRAPH, 30, 60, "TEXT", VAL_MENU_META_FONT, shape_color, VAL_TRANSPARENT); break; } break; } return 0;}int CVICALLBACK FillColor (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_FILLCOLOR, &shape_color); PlotShape (0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}int CVICALLBACK FillMode (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_FILLMODE, &shapefill_mode); PlotShape (0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}int CVICALLBACK ShapeStyle (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_SHAPESTYLE, &shape_style); PlotShape (0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}int CVICALLBACK SelectCursor (int panel, int control, int event, void *callbackData, int eventData1, int eventData2){ switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_SELECTCURSOR, &cursor_number); Graph(0,0,EVENT_COMMIT,0,0,0); SetActiveCtrl( panel, control); break; } return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -