📄 sample4_1.c
字号:
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 + -