labwindowscvi-圖形用戶界面設(shè)計(jì)課件
,,,,,,,,,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,38,/38,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,*,,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,*,,,,,,,,,,,,,,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,*,單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,,*,labwindowscvi 圖形用戶界面設(shè)計(jì),labwindowscvi 圖形用戶界面設(shè)計(jì)labwindowscvi 圖形用戶界面設(shè)計(jì),labwindowscvi 圖形用戶界面設(shè)計(jì)labwindo,1,圖形用戶界面設(shè)計(jì),圖形用戶界面(Graphical User Interface),面板(panel),菜單條(menu bar),控件(control),LabWindows/CVI自定義的資源格式,面板設(shè)計(jì),其它資源的容器,面板屬性編輯器,使用用戶界面設(shè)計(jì)函數(shù)創(chuàng)建面板和改變面板屬性,11/4/2024,,圖形用戶界面設(shè)計(jì)圖形用戶界面(Graphical User,面板(panel),11/4/2024,,面板(panel)10/8/2023,面板編輯窗口,11/4/2024,,面板編輯窗口10/8/2023,面板操作函數(shù):,NewPanel 創(chuàng)建面板,int NewPanel (int Parent_Panel_Handle, char Panel_Title[], int Panel_Top, int Panel_Left, int Panel_Height, int Panel_Width);,testPanelHandle = NewPanel (0, "新面板", 10, 10, 200, 300);,LoadPanel 載入面板,int LoadPanel (int Parent_Panel_Handle, char [], int Panel_Resource_ID);,testPanelHandle = LoadPanel (0, "test.uir", PANEL_TEST);,,DisplayPanel 顯示面板,int DisplayPanel (int Panel_Handle);,DisplayPanel (testPanelHandle);,DiscardPanel 釋放面板,int DiscardPanel (int Panel_Handle),DiscardPanel (testPanelHandle);,11/4/2024,,面板操作函數(shù):10/8/2023,HidePanel 隱藏面板,int HidePanel (int Panel_Handle);,HidePanel (testPanelHandle);,GetPanelAttribute 獲取面板屬性,int GetPanelAttribute (int Panel_Handle, int Panel_Attribute, void *Attribute_Value);,GetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, ,SetPanelAttribute 設(shè)置面板屬性,int SetPanelAttribute (int Panel_Handle, int Panel_Attribute, ...);,SetPanelAttribute (testPanelHandle, ATTR_BACKCOLOR, VAL_RED);,SavePanelState 保存面板狀態(tài),RacallPanelState 調(diào)出面板狀態(tài),… …,11/4/2024,,HidePanel 隱藏面板10/8/2023,彈出式面板(Pop-up Panel),11/4/2024,,彈出式面板(Pop-up Panel)10/8/2023,彈出式面板(Pop-up Panel),11/4/2024,,彈出式面板(Pop-up Panel)10/8/2023,彈出式面板函數(shù)(Pop-up Panel),InstallPopup,載入彈出式面板,int InstallPopup (int Panel_Handle);,InstallPopup (testPanelHandle);,RemovePopup,刪除彈出式面板,int RemovePopup (int Remove_Popup);,RemovePopup (0);,MessagePopup,輸出信息對話框,int MessagePopup (char Title[], char Message[]);,MessagePopup ("提示信息", "測試結(jié)束,全部合格");,ConfirmPopup,等待確認(rèn)對話框 Yes or No,int ConfirmPopup (char Title[], char Message[]);,response = ConfirmPopup ("測試信息", "測量錯(cuò)誤,是否繼續(xù)?");,PromptPopup,等待輸入字符信息對話框,int PromptPopup (char Title[], char Message[], char Response_Buffer[], int Max_Response_Length);,PromptPopup ("輸入信息", "請輸入姓名", ,11/4/2024,,彈出式面板函數(shù)(Pop-up Panel)10/8/2023,,int (char Default_Directory[], char Default_[], char [], char Title[], int Button_Label, int Restrict_Directory?, int Restrict_Extension?, int Allow_Cancel?, int Allow_Make_Directory?, char Path_Name[]);,i = ("c:\\vxipnp", "*.txt", "*.*", "選擇數(shù)據(jù)文件", VAL_LOAD_BUTTON, 0, 0, 1, 0, );,DirSelectPopup,int DirSelectPopup (char Default_Directory[], char Title[], int Allow_Cancel?, int Allow_Make_Directory?, char Path_Name[]);,i = DirSelectPopup ("c:\\vxipnp", "Select Directory", 1, 1, ,WaveformGraphPopup,int WaveformGraphPopup (char Title[], void *Y_Array, int Number_of_Points, int Y_Data_Type, double Y_Gain, double Y_Offset, double Initial_X, double X_Increment);,WaveformGraphPopup ("測量波形", testdata, 1024, VAL_DOUBLE, 1.0, 0.0, 0.0, 1.0);,,11/4/2024,,10/8/2023,菜單條設(shè)計(jì),簡易菜單條和定制菜單條,菜單制作和編輯器,使用用戶界面函數(shù)創(chuàng)建和編輯菜單,11/4/2024,,菜單條設(shè)計(jì)10/8/2023,菜單編輯窗口,11/4/2024,,菜單編輯窗口10/8/2023,菜單操作函數(shù):,LoadMenuBar,int LoadMenuBar (int Destination_Panel_Handle, char [], int Menu_Bar_Resource_ID);,mainMenuHandle = LoadMenuBar (testPanelHandle, "test.uir", MAIN_MENU);,DiscardMenuBar,int DiscardMenuBar (int Menu_Bar_Handle);,DiscardMenuBar (mainMenuHandle);,NewMenuBar,int NewMenuBar (int Destination_Panel_Handle);,mainMenuHandle = NewMenuBar (testPanelHandle);,NewMenu,int NewMenu (int Menu_Bar_Handle, char Menu_Name[], int Before_Menu_ID);,menuFileID = NewMenu (mainMenuHandle, "文件", -1);,11/4/2024,,菜單操作函數(shù):10/8/2023,,NewMenuItem,int NewMenuItem (int Menu_Bar_Handle, int Menu_ID, char Item_Name[], int Before_Menu_Item_ID, int Short_Cut_Key, MenuCallbackPtr Event_Function, void *Event_Callback_Data);,,NewSubMenu,int NewSubMenu (int Menu_Bar_Handle, int Menu_Item_ID);,menu = NewSubMenu (mainMenuHandle, menuFileID);,,DiscardMenu,DiscardSubMenu,DiscardMenuItem,… …,11/4/2024,,10/8/2023,控件設(shè)計(jì),控件種類:,數(shù)值型(Numeric):數(shù)值控件,顏色選擇控件,數(shù)值滑動條,11/4/2024,,控件設(shè)計(jì)10/8/2023,文本型(Text):字符串控件,文本信息,文本框,11/4/2024,,文本型(Text):字符串控件,文本信息,文本框10/8/2,命令按鈕(Command Button):命令按鈕,圖片按鈕,,,,,雙態(tài)按鈕(Toggle Button):雙態(tài)按鈕,文本/圖形按鈕,單選/復(fù)選控件,,11/4/2024,,命令按鈕(Command Button):命令按鈕,圖片按鈕,指示等(LED),,,,,二值開關(guān)(Binary Switch),11/4/2024,,指示等(LED)10/8/2023,列表控件(Ring):下拉列表,滑動列表,圖形列表,,11/4/2024,,列表控件(Ring):下拉列表,滑動列表,圖形列表10/8/,列表框(List Box),,,,,,裝飾控件(Decoration),,11/4/2024,,列表框(List Box)10/8/2023,圖形控件(Graph):曲線圖控件,帶狀圖控件,數(shù)字圖控件,曲線圖控件(Graph),11/4/2024,,圖形控件(Graph):曲線圖控件,帶狀圖控件,數(shù)字圖控件1,帶狀圖控件(Strip Chart),11/4/2024,,帶狀圖控件(Strip Chart)10/8/2023,數(shù)字圖控件(Digital Graph),11/4/2024,,數(shù)字圖控件(Digital Graph)10/8/2023,圖片控件(Picture),11/4/2024,,圖片控件(Picture)10/8/2023,樹形控件(Tree),11/4/2024,,樹形控件(Tree)10/8/2023,定時(shí)器控件(Timer),,,,,畫布控件(Canvas),11/4/2024,,定時(shí)器控件(Timer)10/8/2023,表格控件(Table),,11/4/2024,,表格控件(Table)10/8/2023,分隔控件(Splitter),,11/4/2024,,分隔控件(Splitter)10/8/2023,分頁控件(Tab),,11/4/2024,,分頁控件(Tab)10/8/2023,定制控件(Custom Control),,11/4/2024,,定制控件(Custom Control)10/8/2023,通用控件操作函數(shù):,GetCtrlVal,int GetCtrlVal (int Panel_Handle, int Control_ID, void *Value);,GetCtrlVal (testPanelHandle, NUMERIC_VOL, ,SetCtrlVal,int SetCtrlVal (int Panel_Handle, int Control_ID, ...);,SetCtrlVal (testPanelHandle, NUMERIC_VOL, 5.0);,GetCtrlAttribute,int GetCtrlAttribute (int Panel_Handle, int Control_ID, int Control_Attribute, void *Attribute_Value);,GetCtrlAttribute (testPanelHandle, NUMERIC_VOL, ATTR_CTRL_VAL, ,SetCtrlAttribute,int SetCtrlAttribute (int Panel_Handle, int Control_ID, int Control_Attribute, ...);,SetCtrlAttribute (testPanelHandle, NUMERIC_VOL, ATTR_CTRL_VAL, 5.0);,,11/4/2024,,通用控件操作函數(shù):10/8/2023,特定控件操作函數(shù):,列表控件函數(shù),文本框控件函數(shù),圖形控件函數(shù),定時(shí)器控件函數(shù),表格控件函數(shù),… …,5. 用戶界面管理:,RunUserInterface,int RunUserInterface (void);,QuitUserInterface,int QuitUserInterface (int Return_Code);,QuitUserInterface (0);,11/4/2024,,特定控件操作函數(shù):10/8/2023,6. 圖形界面設(shè)計(jì)舉例,菜單的制作,用Strip Chart顯示一組隨機(jī)數(shù),定時(shí)溫度采集顯示,11/4/2024,,6. 圖形界面設(shè)計(jì)舉例10/8/2023,ActiveX控件,ActiveX技術(shù)簡介,ActiveX技術(shù)是指寬松定義的、基于組件對象模型(COM)的技術(shù)集合。它是基于已經(jīng)存在的OLE(對象鏈接與嵌入)技術(shù),通過把桌面系統(tǒng)“對象共享”的范圍擴(kuò)展到整個(gè)Internet,以使得構(gòu)造這類新應(yīng)用程序成為可能。,COM定義了創(chuàng)建、配置和使用ActiveX應(yīng)用程序的規(guī)則。它是一個(gè)二進(jìn)制標(biāo)準(zhǔn),包含了一系列規(guī)則,目的是構(gòu)建與語言無關(guān)的,面向?qū)ο蟮膽?yīng)用程序。,,11/4/2024,,ActiveX控件ActiveX技術(shù)簡介10/8/2023,ActiveX可以用來開發(fā)能在不同的開發(fā)環(huán)境中重復(fù)使用的組件。下面是其中的一些技術(shù):,ActiveX自動化,——在一個(gè)程序中自動操作另一個(gè)程序。例如,在測試程序中,可以使用ActiveX自動化使LabWindows/CVI程序中在后臺操作Microsoft Word,生成帶有圖形和表格并顯示不同字體的測試報(bào)告。,ActiveX控件,——在外部程序中使用獨(dú)立的交互式對象。例如,可以在容器中(如LabWindows/CVI的面板)嵌入并使用一個(gè)Microsoft Calendar控件或者M(jìn)easurement Studio 3D Graph控件。,ActiveX文檔,——在容器中(如LabWindows/CVI的面板)查看文檔。例如,可以把一個(gè)Microsoft Word文檔或Excel電子表格放在LabWindows/CVI的面板中顯示。,11/4/2024,,ActiveX可以用來開發(fā)能在不同的開發(fā)環(huán)境中重復(fù)使用的組件,ActiveX控件,ActiveX控件是LabWindows/CVI的外部組件,可以象LabWindows/CVI的內(nèi)部控件一樣使用。,設(shè)計(jì)帶有ActiveX控件的程序,選擇ActiveX控件 :在UIR窗口選擇Creat>>ActiveX ,選擇Creat Control選項(xiàng),在ActiveX控件列表中選擇需要的ActiveX控件,單擊OK按鈕。,設(shè)置ActiveX控件屬性:雙擊ActiveX控件,也可以點(diǎn)擊編輯控件對話框中的“Property Sheets”按鈕,編輯控件特性頁。,,11/4/2024,,ActiveX控件10/8/2023,生成ActiveX控件驅(qū)動程序 :在Tools菜單,選擇Create ActiveX Controller ,或右擊ActiveX控件選擇Generate ActiveX Control Driver,運(yùn)行特定控件的ActiveX控制器向?qū)?,完成之后生成.fp文件。,在使用.fp中的函數(shù)之前,用GetObjHandleFromActiveXCtrl函數(shù)獲得ActiveX控件句柄。,,設(shè)計(jì)舉例(媒體播放器),11/4/2024,,生成ActiveX控件驅(qū)動程序 :在Tools菜單,選擇Cr,變量、函數(shù)、參數(shù)名稱的命名建議,名稱要有意義,使用單詞或縮寫,不易過長,不要超過40個(gè)字符,20個(gè)以內(nèi)為宜,宏定義:全部用大寫字母,字符之間用下劃線分隔,如:,#define CHANNEL_NUMBER 10;,變量名和函數(shù)參數(shù)名:第一個(gè)單詞全用小寫,其余單詞詞首大寫,其余用小寫,如,:,int bufferSize; double dSampRate;,函數(shù)名:每個(gè)單詞開頭字母大寫,其余用小寫,如:,double,,ReadCVT(int chNumber),int SetStopFrequency(double stopFrequency),11/4/2024,,變量、函數(shù)、參數(shù)名稱的命名建議10/8/2023,謝謝,謝謝,39,