《labwindowscvi2 圖形用戶(hù)界面設(shè)計(jì)》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《labwindowscvi2 圖形用戶(hù)界面設(shè)計(jì)(39頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、2/387/1/2022圖形用戶(hù)界面設(shè)計(jì)w圖形用戶(hù)界面(Graphical User Interface)面板(panel)菜單條(menu bar)控件(control)LabWindows/CVI自定義的資源格式w面板設(shè)計(jì)其它資源的容器面板屬性編輯器使用用戶(hù)界面設(shè)計(jì)函數(shù)創(chuàng)建面板和改變面板屬性3/387/1/2022面板(panel)4/387/1/2022面板編輯窗口5/387/1/2022面板操作函數(shù):NewPanel創(chuàng)建面板nint NewPanel (int Parent_Panel_Handle, char Panel_Title, int Panel_Top, int Panel
2、_Left, int Panel_Height, int Panel_Width);ntestPanelHandle = NewPanel (0, 新面板, 10, 10, 200, 300);LoadPanel載入面板nint LoadPanel (int Parent_Panel_Handle, char Filename, int Panel_Resource_ID);ntestPanelHandle = LoadPanel (0, test.uir, PANEL_TEST);DisplayPanel顯示面板nint DisplayPanel (int Panel_Handle);nDi
3、splayPanel (testPanelHandle);DiscardPanel釋放面板nint DiscardPanel (int Panel_Handle)nDiscardPanel (testPanelHandle);6/387/1/2022HidePanel隱藏面板nint HidePanel (int Panel_Handle);nHidePanel (testPanelHandle);GetPanelAttribute獲取面板屬性nint GetPanelAttribute (int Panel_Handle, int Panel_Attribute, void *Attribu
4、te_Value);nGetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, &color);SetPanelAttribute設(shè)置面板屬性nint SetPanelAttribute (int Panel_Handle, int Panel_Attribute, .);nSetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, VAL_RED);SavePanelState保存面板狀態(tài)RacallPanelState調(diào)出面板狀態(tài) 7/387/1/2022彈出式面板(Pop-up Panel)8/38
5、7/1/2022彈出式面板(Pop-up Panel)9/387/1/2022彈出式面板函數(shù)(Pop-up Panel)InstallPopup載入彈出式面板nint InstallPopup (int Panel_Handle);nInstallPopup (testPanelHandle);RemovePopup刪除彈出式面板nint RemovePopup (int Remove_Popup);nRemovePopup (0);MessagePopup輸出信息對(duì)話(huà)框nint MessagePopup (char Title, char Message);nMessagePopup (提示
6、信息, 測(cè)試結(jié)束,全部合格);ConfirmPopup等待確認(rèn)對(duì)話(huà)框 Yes or Nonint ConfirmPopup (char Title, char Message);nresponse = ConfirmPopup (測(cè)試信息, 測(cè)量錯(cuò)誤,是否繼續(xù)?);PromptPopup等待輸入字符信息對(duì)話(huà)框nint PromptPopup (char Title, char Message, char Response_Buffer, int Max_Response_Length);nPromptPopup (輸入信息, 請(qǐng)輸入姓名, &name, 20);10/387/1/2022Fil
7、eSelectPopupnint FileSelectPopup (char Default_Directory, char Default_File_Spec, char File_Type_List, char Title, int Button_Label, int Restrict_Directory?, int Restrict_Extension?, int Allow_Cancel?, int Allow_Make_Directory?, char Path_Name);ni = FileSelectPopup (c:vxipnp, *.txt, *.*, 選擇數(shù)據(jù)文件, VAL
8、_LOAD_BUTTON, 0, 0, 1, 0, filename);DirSelectPopupnint DirSelectPopup (char Default_Directory, char Title, int Allow_Cancel?, int Allow_Make_Directory?, char Path_Name);ni = DirSelectPopup (c:vxipnp, Select Directory, 1, 1, &pathname);WaveformGraphPopupnint WaveformGraphPopup (char Title, void *Y_Ar
9、ray, int Number_of_Points, int Y_Data_Type, double Y_Gain, double Y_Offset, double Initial_X, double X_Increment);nWaveformGraphPopup (測(cè)量波形, testdata, 1024, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0);11/387/1/2022w菜單條設(shè)計(jì)簡(jiǎn)易菜單條和定制菜單條菜單制作和編輯器使用用戶(hù)界面函數(shù)創(chuàng)建和編輯菜單12/387/1/2022菜單編輯窗口13/387/1/2022菜單操作函數(shù):nLoadMenuBarint Loa
10、dMenuBar (int Destination_Panel_Handle, char Filename, int Menu_Bar_Resource_ID);mainMenuHandle = LoadMenuBar (testPanelHandle, test.uir, MAIN_MENU);nDiscardMenuBarint DiscardMenuBar (int Menu_Bar_Handle);DiscardMenuBar (mainMenuHandle);nNewMenuBarint NewMenuBar (int Destination_Panel_Handle);mainMe
11、nuHandle = NewMenuBar (testPanelHandle);nNewMenuint NewMenu (int Menu_Bar_Handle, char Menu_Name, int Before_Menu_ID);menuFileID = NewMenu (mainMenuHandle, 文件, 1);14/387/1/2022nNewMenuItemint NewMenuItem (int Menu_Bar_Handle, int Menu_ID, char Item_Name, int Before_Menu_Item_ID, int Short_Cut_Key, M
12、enuCallbackPtr Event_Function, void *Event_Callback_Data);&menuFileOpenID = NewMenuItem (mainMenuHandle, menuFileID, 打開(kāi)., 1, 0, FileOpen, 0);nNewSubMenuint NewSubMenu (int Menu_Bar_Handle, int Menu_Item_ID);menuFileOpenID = NewSubMenu (mainMenuHandle, menuFileID); nDiscardMenunDiscardSubMenunDiscard
13、MenuItemn 15/387/1/2022w 控件設(shè)計(jì)控件種類(lèi):n數(shù)值型(Numeric):數(shù)值控件,顏色選擇控件,數(shù)值滑動(dòng)條16/387/1/2022n文本型(Text):字符串控件,文本信息,文本框17/387/1/2022n命令按鈕(Command Button):命令按鈕,圖片按鈕n雙態(tài)按鈕(Toggle Button):雙態(tài)按鈕,文本/圖形按鈕,單選/復(fù)選控件18/387/1/2022n指示等(LED)n二值開(kāi)關(guān)(Binary Switch)19/387/1/2022n列表控件(Ring):下拉列表,滑動(dòng)列表,圖形列表20/387/1/2022n列表框(List Box)n裝飾控
14、件(Decoration)21/387/1/2022n圖形控件(Graph):曲線(xiàn)圖控件,帶狀圖控件,數(shù)字圖控件曲線(xiàn)圖控件(Graph)22/387/1/2022帶狀圖控件(Strip Chart)23/387/1/2022數(shù)字圖控件(Digital Graph)24/387/1/2022n圖片控件(Picture)25/387/1/2022n樹(shù)形控件(Tree)26/387/1/2022n定時(shí)器控件(Timer)n畫(huà)布控件(Canvas)27/387/1/2022n表格控件(Table)28/387/1/2022n分隔控件(Splitter)29/387/1/2022n分頁(yè)控件(Tab)30
15、/387/1/2022n定制控件(Custom Control)31/387/1/2022通用控件操作函數(shù):nGetCtrlValint GetCtrlVal (int Panel_Handle, int Control_ID, void *Value);GetCtrlVal (testPanelHandle, NUMERIC_VOL, &voltage);nSetCtrlValint SetCtrlVal (int Panel_Handle, int Control_ID, .);SetCtrlVal (testPanelHandle, NUMERIC_VOL, 5.0);nGetCtrlA
16、ttributeint GetCtrlAttribute (int Panel_Handle, int Control_ID, int Control_Attribute, void *Attribute_Value);GetCtrlAttribute (testPanelHandle, NUMERIC_VOL, ATTR_CTRL_VAL, &voltage);nSetCtrlAttributeint SetCtrlAttribute (int Panel_Handle, int Control_ID, int Control_Attribute, .);SetCtrlAttribute (
17、testPanelHandle, NUMERIC_VOL, ATTR_CTRL_VAL, 5.0);32/387/1/2022特定控件操作函數(shù):n列表控件函數(shù)n文本框控件函數(shù)n圖形控件函數(shù)n定時(shí)器控件函數(shù)n表格控件函數(shù)n 5. 用戶(hù)界面管理:RunUserInterfacenint RunUserInterface (void);QuitUserInterfacenint QuitUserInterface (int Return_Code);nQuitUserInterface (0);33/387/1/20226. 圖形界面設(shè)計(jì)舉例菜單的制作用Strip Chart顯示一組隨機(jī)數(shù)定時(shí)溫度采
18、集顯示34/387/1/2022ActiveX控件ActiveX技術(shù)簡(jiǎn)介nActiveX技術(shù)是指寬松定義的、基于組件對(duì)象模型(COM)的技術(shù)集合。它是基于已經(jīng)存在的OLE(對(duì)象鏈接與嵌入)技術(shù),通過(guò)把桌面系統(tǒng)“對(duì)象共享”的范圍擴(kuò)展到整個(gè)Internet,以使得構(gòu)造這類(lèi)新應(yīng)用程序成為可能。 nCOM定義了創(chuàng)建、配置和使用ActiveX應(yīng)用程序的規(guī)則。它是一個(gè)二進(jìn)制標(biāo)準(zhǔn),包含了一系列規(guī)則,目的是構(gòu)建與語(yǔ)言無(wú)關(guān)的,面向?qū)ο蟮膽?yīng)用程序。 35/387/1/2022ActiveX可以用來(lái)開(kāi)發(fā)能在不同的開(kāi)發(fā)環(huán)境中重復(fù)使用的組件。下面是其中的一些技術(shù):在一個(gè)程序中自動(dòng)操作另一個(gè)程序。例如,在測(cè)試程序中,可以
19、使用ActiveX自動(dòng)化使LabWindows/CVI程序中在后臺(tái)操作Microsoft Word,生成帶有圖形和表格并顯示不同字體的測(cè)試報(bào)告。在外部程序中使用獨(dú)立的交互式對(duì)象。例如,可以在容器中(如LabWindows/CVI的面板)嵌入并使用一個(gè)Microsoft Calendar控件或者M(jìn)easurement Studio 3D Graph控件。在容器中(如LabWindows/CVI的面板)查看文檔。例如,可以把一個(gè)Microsoft Word文檔或Excel電子表格放在LabWindows/CVI的面板中顯示。36/387/1/2022ActiveX控件nActiveX控件是LabW
20、indows/CVI的外部組件,可以象LabWindows/CVI的內(nèi)部控件一樣使用。 設(shè)計(jì)帶有ActiveX控件的程序n選擇ActiveX控件 :在UIR窗口選擇CreatActiveX ,選擇Creat Control選項(xiàng),在ActiveX控件列表中選擇需要的ActiveX控件,單擊OK按鈕。 n設(shè)置ActiveX控件屬性:雙擊ActiveX控件,也可以點(diǎn)擊編輯控件對(duì)話(huà)框中的“Property Sheets”按鈕,編輯控件特性頁(yè)。 37/387/1/2022n生成ActiveX控件驅(qū)動(dòng)程序 :在Tools菜單,選擇Create ActiveX Controller ,或右擊ActiveX控
21、件選擇Generate ActiveX Control Driver,運(yùn)行特定控件的ActiveX控制器向?qū)?,完成之后生成.fp文件。n在使用.fp中的函數(shù)之前,用GetObjHandleFromActiveXCtrl函數(shù)獲得ActiveX控件句柄。設(shè)計(jì)舉例(媒體播放器)38/387/1/2022n變量、函數(shù)、參數(shù)名稱(chēng)的命名建議名稱(chēng)要有意義,使用單詞或縮寫(xiě)不易過(guò)長(zhǎng),不要超過(guò)40個(gè)字符,20個(gè)以?xún)?nèi)為宜宏定義:全部用大寫(xiě)字母,字符之間用下劃線(xiàn)分隔,如:#define CHANNEL_NUMBER 10;變量名和函數(shù)參數(shù)名:第一個(gè)單詞全用小寫(xiě),其余單詞詞首大寫(xiě),其余用小寫(xiě),如:int bufferSize; double dSampRate;函數(shù)名:每個(gè)單詞開(kāi)頭字母大寫(xiě),其余用小寫(xiě),如:double ReadCVT(int chNumber)int SetStopFrequency(double stopFrequency)