⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sample4_1.c

📁 经典LabWindows CVI方面的教材《LabWindows CVI开发入门和进阶》一书例题1-4章中的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
	ResetTextBox(panel, PANEL_TEXTBOX_1, "");}//Menu Paste callback fun void CVICALLBACK Paste (int menuBar, int menuItem, void *callbackData,		int panel){     char    *text = 0;    int     bitmap = 0,num;    Rect    destRect;    char buf[255];		    ClipboardGetText(&text, 0);        if (text != 0)      /* any text to paste? */        {        GetNumTextBoxLines (panelHandle, PANEL_TEXTBOX_2, &num); 		InsertTextBoxLine (panelHandle, PANEL_TEXTBOX_2, num, text);        free(text);     /* free the copy of the text returned by ClipboardGetText */        }    else        {        ClipboardGetBitmap(&bitmap, 0);          if (bitmap != 0)    /* is there a bitmap to paste? */            {            CanvasClear(panel, PANEL_CANVAS, VAL_ENTIRE_OBJECT);                            /* ask user how to draw the clipboard's bitmap into the canvas control: */            if (GenericMessagePopup ("PastingImage","Does the map be streched to fit canvas?",                        "__No", "Yes", 0, 0, 0,0, VAL_GENERIC_POPUP_BTN1, VAL_GENERIC_POPUP_BTN1, VAL_GENERIC_POPUP_BTN2)                    == VAL_GENERIC_POPUP_BTN1)                  destRect = MakeRect(0,0,VAL_KEEP_SAME_SIZE, VAL_KEEP_SAME_SIZE);            else                destRect = VAL_ENTIRE_OBJECT;                                CanvasDrawBitmap (panel, PANEL_CANVAS, bitmap, VAL_ENTIRE_OBJECT, destRect);            DiscardBitmap(bitmap);  /* free the bitmap returned by ClipboardGetBitmap */            }        }				}//menu DisplayB callback fun void CVICALLBACK DisplayB (int menuBar, int menuItem, void *callbackData,		int panel){   BOOL  checked;    GetMenuBarAttribute (menuBar, MAIN_MENU_EDIT_DISPLAYB, ATTR_CHECKED,									  &checked);   SetMenuBarAttribute (menuBar, MAIN_MENU_EDIT_DISPLAYB, ATTR_CHECKED,									  !checked);   SetCtrlAttribute (panelHandle, PANEL_TEXTBOX_2, ATTR_VISIBLE, !checked);}//Menu Version callback fun void CVICALLBACK Version (int menuBar, int menuItem, void *callbackData,		int panel){  MessagePopup("Help","Ver 1.0");}//Menu About callback fun void CVICALLBACK About (int menuBar, int menuItem, void *callbackData,		int panel){MessagePopup("help","sample4_1,made by zhang ");}//menu copy panel callback fun void CVICALLBACK CopyPanel (int menuBar, int menuItem, void *callbackData,		int panel){    int bitmap;				     GetPanelDisplayBitmap(panel, VAL_VISIBLE_AREA, VAL_ENTIRE_OBJECT, &bitmap);     ClipboardPutBitmap(bitmap);                       DiscardBitmap(bitmap);      }//Menu Display canvas callback fun void CVICALLBACK DisplayCanvas (int menuBar, int menuItem, void *callbackData,		int panel){   char buf[20];   GetMenuBarAttribute (menuBar, MAIN_MENU_EDIT_DISPLAYCANVAS, ATTR_ITEM_NAME, buf);   if(strcmp(buf,"隐藏画板")==0)   {   SetMenuBarAttribute (menuBar, MAIN_MENU_EDIT_DISPLAYCANVAS, ATTR_ITEM_NAME, "显示画板");   SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_VISIBLE, 0);     }    else	{	SetMenuBarAttribute (menuBar, MAIN_MENU_EDIT_DISPLAYCANVAS, ATTR_ITEM_NAME, "隐藏画板");	SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_VISIBLE, 1);   	}    	}// Draw Button callback fun int CVICALLBACK Draw (int panel, int control, int event,		void *callbackData, int eventData1, int eventData2){    if (event==EVENT_COMMIT) {        int randTop, randLeft, randHeight, randWidth;        int bitmapID;        int x, y, i, value, color;        Rect rectVal;        Point pointVal1, pointVal2;        Point pointArray[6];                  randTop    = 50*rand()/RAND_MAX + 5;        randHeight =  30*rand()/RAND_MAX  + 20;                randLeft    = 200*rand()/RAND_MAX + 5;        randWidth   =  30*rand()/RAND_MAX + 20;        rectVal = MakeRect (randTop, randLeft, randHeight, randWidth);        //GetCtrlVal (panel, control, &value);                                                                   color = MakeColor(255*rand()/RAND_MAX, 255*rand()/RAND_MAX, 255*rand()/RAND_MAX);                              SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_PEN_FILL_COLOR, color);                                                                                                                                                          color = MakeColor(255*rand()/RAND_MAX, 255*rand()/RAND_MAX, 255*rand()/RAND_MAX);                              SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_PEN_COLOR, color);                                                                                                                                                               SetCtrlAttribute (panelHandle, PANEL_CANVAS, ATTR_PEN_WIDTH, 5*rand()/RAND_MAX+1);                                                                                                                                                 /* Which button was pushed */                                                                                  switch (control) {                                                                                                 case PANEL_DRAW_ARC:                                                                                               CanvasDrawArc (panel, PANEL_CANVAS, rectVal, 0, 2700, VAL_DRAW_FRAME_AND_INTERIOR);                            break;                                                                                                     case PANEL_DRAW_LINE:                                                                                              /* Decide points to draw from and to */                                                                        if (randTop%2==0) {                                                                                                pointVal1 = MakePoint (randLeft, randTop);                                                                     pointVal2 = MakePoint (randWidth, randHeight);                                                             }                                                                                                              else {                                                                                                             pointVal1 = MakePoint (randLeft, randTop+randHeight);                                                          pointVal2 = MakePoint (randLeft+randWidth, randTop);                                                       }                                                                                                              CanvasDrawLine (panel, PANEL_CANVAS, pointVal1, pointVal2);                                                                                                                                                                   break;                                                                                                     case PANEL_DRAW_OVAL:                                                                                              CanvasDrawOval (panel, PANEL_CANVAS, rectVal, VAL_DRAW_FRAME_AND_INTERIOR);                                    break;                                                                                                     case PANEL_DRAW_POINT:                                                                                             CanvasStartBatchDraw (panel, PANEL_CANVAS);                                                                    /* Fill rectangle with random points */                                                                        for (i=0;i<100;i++) {                                                                                              y = randTop  + (randHeight*rand()/RAND_MAX);                                                                   x = randLeft + (randWidth *rand()/RAND_MAX);                                                                   CanvasDrawPoint (panel, PANEL_CANVAS, MakePoint(x,y));                                                     }                                                                                                                                                                                                                             CanvasEndBatchDraw (panel, PANEL_CANVAS);                                                                      break;                                                                                                     case PANEL_DRAW_POLY:                                                                                              /* Randomly decide on points to use */                                                                         value = (3*rand()/RAND_MAX) + 3;                                                                               for (i=0;i<value;i++) {                                                                                            y = randTop  + ((randHeight+20)*rand()/RAND_MAX);                                                              x = randLeft + ((randWidth+20) *rand()/RAND_MAX);                                                              pointArray[i] = MakePoint(x,y);                                                                            }                                                                                                              CanvasDrawPoly (panel, PANEL_CANVAS, value, pointArray, 1,                                                                     VAL_DRAW_FRAME_AND_INTERIOR);                                                                  break;                                                                                                     case PANEL_DRAW_RECTAN:                                                                                            CanvasDrawRect (panel, PANEL_CANVAS, rectVal, VAL_DRAW_FRAME_AND_INTERIOR);                                    break;                                                                                                     case PANEL_DRAW_TEXT:                                                                                              CanvasDrawText (panel, PANEL_CANVAS, "sample text", VAL_APP_META_FONT,                                                         rectVal, VAL_CENTER);                                                                          break;                                                                                                 } /* switch (control) */                                                                                   } /* if (event==EVENT_COMMIT) */    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -