《labwindowscvi2 圖形用戶界面設計》由會員分享,可在線閱讀,更多相關《labwindowscvi2 圖形用戶界面設計(39頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、2/387/1/2022圖形用戶界面設計w圖形用戶界面(Graphical User Interface)面板(panel)菜單條(menu bar)控件(control)LabWindows/CVI自定義的資源格式w面板設計其它資源的容器面板屬性編輯器使用用戶界面設計函數(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設置面板屬性nint SetPanelAttribute (int Panel_Handle, int Panel_Attribute, .);nSetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, VAL_RED);SavePanelState保存面板狀態(tài)RacallPanelState調出面板狀態(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輸出信息對話框nint MessagePopup (char Title, char Message);nMessagePopup (提示
6、信息, 測試結束,全部合格);ConfirmPopup等待確認對話框 Yes or Nonint ConfirmPopup (char Title, char Message);nresponse = ConfirmPopup (測試信息, 測量錯誤,是否繼續(xù)?);PromptPopup等待輸入字符信息對話框nint PromptPopup (char Title, char Message, char Response_Buffer, int Max_Response_Length);nPromptPopup (輸入信息, 請輸入姓名, &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 (測量波形, testdata, 1024, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0);11/387/1/2022w菜單條設計簡易菜單條和定制菜單條菜單制作和編輯器使用用戶界面函數(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, 打開., 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 控件設計控件種類:n數(shù)值型(Numeric):數(shù)值控件,顏色選擇控件,數(shù)值滑動條16/387/1/2022n文本型(Text):字符串控件,文本信息,文本框17/387/1/2022n命令按鈕(Command Button):命令按鈕,圖片按鈕n雙態(tài)按鈕(Toggle Button):雙態(tài)按鈕,文本/圖形按鈕,單選/復選控件18/387/1/2022n指示等(LED)n二值開關(Binary Switch)19/387/1/2022n列表控件(Ring):下拉列表,滑動列表,圖形列表20/387/1/2022n列表框(List Box)n裝飾控
14、件(Decoration)21/387/1/2022n圖形控件(Graph):曲線圖控件,帶狀圖控件,數(shù)字圖控件曲線圖控件(Graph)22/387/1/2022帶狀圖控件(Strip Chart)23/387/1/2022數(shù)字圖控件(Digital Graph)24/387/1/2022n圖片控件(Picture)25/387/1/2022n樹形控件(Tree)26/387/1/2022n定時器控件(Timer)n畫布控件(Canvas)27/387/1/2022n表格控件(Table)28/387/1/2022n分隔控件(Splitter)29/387/1/2022n分頁控件(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ù)n表格控件函數(shù)n 5. 用戶界面管理:RunUserInterfacenint RunUserInterface (void);QuitUserInterfacenint QuitUserInterface (int Return_Code);nQuitUserInterface (0);33/387/1/20226. 圖形界面設計舉例菜單的制作用Strip Chart顯示一組隨機數(shù)定時溫度采
18、集顯示34/387/1/2022ActiveX控件ActiveX技術簡介nActiveX技術是指寬松定義的、基于組件對象模型(COM)的技術集合。它是基于已經(jīng)存在的OLE(對象鏈接與嵌入)技術,通過把桌面系統(tǒng)“對象共享”的范圍擴展到整個Internet,以使得構造這類新應用程序成為可能。 nCOM定義了創(chuàng)建、配置和使用ActiveX應用程序的規(guī)則。它是一個二進制標準,包含了一系列規(guī)則,目的是構建與語言無關的,面向對象的應用程序。 35/387/1/2022ActiveX可以用來開發(fā)能在不同的開發(fā)環(huán)境中重復使用的組件。下面是其中的一些技術:在一個程序中自動操作另一個程序。例如,在測試程序中,可以
19、使用ActiveX自動化使LabWindows/CVI程序中在后臺操作Microsoft Word,生成帶有圖形和表格并顯示不同字體的測試報告。在外部程序中使用獨立的交互式對象。例如,可以在容器中(如LabWindows/CVI的面板)嵌入并使用一個Microsoft Calendar控件或者Measurement Studio 3D Graph控件。在容器中(如LabWindows/CVI的面板)查看文檔。例如,可以把一個Microsoft Word文檔或Excel電子表格放在LabWindows/CVI的面板中顯示。36/387/1/2022ActiveX控件nActiveX控件是LabW
20、indows/CVI的外部組件,可以象LabWindows/CVI的內部控件一樣使用。 設計帶有ActiveX控件的程序n選擇ActiveX控件 :在UIR窗口選擇CreatActiveX ,選擇Creat Control選項,在ActiveX控件列表中選擇需要的ActiveX控件,單擊OK按鈕。 n設置ActiveX控件屬性:雙擊ActiveX控件,也可以點擊編輯控件對話框中的“Property Sheets”按鈕,編輯控件特性頁。 37/387/1/2022n生成ActiveX控件驅動程序 :在Tools菜單,選擇Create ActiveX Controller ,或右擊ActiveX控
21、件選擇Generate ActiveX Control Driver,運行特定控件的ActiveX控制器向導 ,完成之后生成.fp文件。n在使用.fp中的函數(shù)之前,用GetObjHandleFromActiveXCtrl函數(shù)獲得ActiveX控件句柄。設計舉例(媒體播放器)38/387/1/2022n變量、函數(shù)、參數(shù)名稱的命名建議名稱要有意義,使用單詞或縮寫不易過長,不要超過40個字符,20個以內為宜宏定義:全部用大寫字母,字符之間用下劃線分隔,如:#define CHANNEL_NUMBER 10;變量名和函數(shù)參數(shù)名:第一個單詞全用小寫,其余單詞詞首大寫,其余用小寫,如:int bufferSize; double dSampRate;函數(shù)名:每個單詞開頭字母大寫,其余用小寫,如:double ReadCVT(int chNumber)int SetStopFrequency(double stopFrequency)