labwindowscvi2第三章圖形用戶界面設(shè)計(jì).ppt
LabWindows/CVI教程(2)用戶圖形界面設(shè)計(jì)喬立巖,2020/4/25,圖形用戶界面設(shè)計(jì),圖形用戶界面(GraphicalUserInterface)面板(panel)菜單條(menubar)控件(control)LabWindows/CVI自定義的資源格式面板設(shè)計(jì)其它資源的容器面板屬性編輯器使用用戶界面設(shè)計(jì)函數(shù)創(chuàng)建面板和改變面板屬性,2020/4/25,面板(panel),2020/4/25,面板編輯窗口,2020/4/25,面板操作函數(shù):NewPanel創(chuàng)建面板intNewPanel(intParent_Panel_Handle,charPanel_Title,intPanel_Top,intPanel_Left,intPanel_Height,intPanel_Width);testPanelHandle=NewPanel(0,"新面板",10,10,200,300);LoadPanel載入面板intLoadPanel(intParent_Panel_Handle,charFilename,intPanel_Resource_ID);testPanelHandle=LoadPanel(0,"test.uir",PANEL_TEST);DisplayPanel顯示面板intDisplayPanel(intPanel_Handle);DisplayPanel(testPanelHandle);DiscardPanel釋放面板intDiscardPanel(intPanel_Handle)DiscardPanel(testPanelHandle);,2020/4/25,HidePanel隱藏面板intHidePanel(intPanel_Handle);HidePanel(testPanelHandle);GetPanelAttribute獲取面板屬性intGetPanelAttribute(intPanel_Handle,intPanel_Attribute,void*Attribute_Value);GetPanelAttribute(testPanelHandle,ATTR_BACKCOLOR,SavePanelState保存面板狀態(tài)RacallPanelState調(diào)出面板狀態(tài),2020/4/25,彈出式面板(Pop-upPanel),2020/4/25,彈出式面板(Pop-upPanel),2020/4/25,彈出式面板函數(shù)(Pop-upPanel)InstallPopup載入彈出式面板intInstallPopup(intPanel_Handle);InstallPopup(testPanelHandle);RemovePopup刪除彈出式面板intRemovePopup(intRemove_Popup);RemovePopup(0);MessagePopup輸出信息對話框intMessagePopup(charTitle,charMessage);MessagePopup("提示信息","測試結(jié)束,全部合格");ConfirmPopup等待確認(rèn)對話框YesorNointConfirmPopup(charTitle,charMessage);response=ConfirmPopup("測試信息","測量錯(cuò)誤,是否繼續(xù)?");PromptPopup等待輸入字符信息對話框intPromptPopup(charTitle,charMessage,charResponse_Buffer,intMax_Response_Length);PromptPopup("輸入信息","請輸入姓名",2020/4/25,FileSelectPopupintFileSelectPopup(charDefault_Directory,charDefault_File_Spec,charFile_Type_List,charTitle,intButton_Label,intRestrict_Directory?,intRestrict_Extension?,intAllow_Cancel?,intAllow_Make_Directory?,charPath_Name);i=FileSelectPopup("c:vxipnp","*.txt","*.*","選擇數(shù)據(jù)文件",VAL_LOAD_BUTTON,0,0,1,0,filename);DirSelectPopupintDirSelectPopup(charDefault_Directory,charTitle,intAllow_Cancel?,intAllow_Make_Directory?,charPath_Name);i=DirSelectPopup("c:vxipnp","SelectDirectory",1,1,2020/4/25,菜單條設(shè)計(jì)簡易菜單條和定制菜單條菜單制作和編輯器使用用戶界面函數(shù)創(chuàng)建和編輯菜單,2020/4/25,菜單編輯窗口,2020/4/25,菜單操作函數(shù):LoadMenuBarintLoadMenuBar(intDestination_Panel_Handle,charFilename,intMenu_Bar_Resource_ID);mainMenuHandle=LoadMenuBar(testPanelHandle,"test.uir",MAIN_MENU);DiscardMenuBarintDiscardMenuBar(intMenu_Bar_Handle);DiscardMenuBar(mainMenuHandle);NewMenuBarintNewMenuBar(intDestination_Panel_Handle);mainMenuHandle=NewMenuBar(testPanelHandle);NewMenuintNewMenu(intMenu_Bar_Handle,charMenu_Name,intBefore_Menu_ID);menuFileID=NewMenu(mainMenuHandle,"文件",1);,2020/4/25,NewMenuItemintNewMenuItem(intMenu_Bar_Handle,intMenu_ID,charItem_Name,intBefore_Menu_Item_ID,intShort_Cut_Key,MenuCallbackPtrEvent_Function,void*Event_Callback_Data);DiscardMenuDiscardSubMenuDiscardMenuItem,2020/4/25,控件設(shè)計(jì)控件種類:數(shù)值型(Numeric):數(shù)值控件,顏色選擇控件,數(shù)值滑動(dòng)條,2020/4/25,文本型(Text):字符串控件,文本信息,文本框,2020/4/25,命令按鈕(CommandButton):命令按鈕,圖片按鈕雙態(tài)按鈕(ToggleButton):雙態(tài)按鈕,文本/圖形按鈕,單選/復(fù)選控件,2020/4/25,指示等(LED)二值開關(guān)(BinarySwitch),2020/4/25,列表控件(Ring):下拉列表,滑動(dòng)列表,圖形列表,2020/4/25,列表框(ListBox)裝飾控件(Decoration),2020/4/25,圖形控件(Graph):曲線圖控件,帶狀圖控件,數(shù)字圖控件曲線圖控件(Graph),2020/4/25,帶狀圖控件(StripChart),2020/4/25,數(shù)字圖控件(DigitalGraph),2020/4/25,圖片控件(Picture),2020/4/25,樹形控件(Tree),2020/4/25,定時(shí)器控件(Timer)畫布控件(Canvas),2020/4/25,表格控件(Table),2020/4/25,分隔控件(Splitter),2020/4/25,分頁控件(Tab),2020/4/25,定制控件(CustomControl),2020/4/25,通用控件操作函數(shù):GetCtrlValintGetCtrlVal(intPanel_Handle,intControl_ID,void*Value);GetCtrlVal(testPanelHandle,NUMERIC_VOL,2020/4/25,特定控件操作函數(shù):列表控件函數(shù)文本框控件函數(shù)圖形控件函數(shù)定時(shí)器控件函數(shù)表格控件函數(shù)5.用戶界面管理:RunUserInterfaceintRunUserInterface(void);QuitUserInterfaceintQuitUserInterface(intReturn_Code);QuitUserInterface(0);,2020/4/25,6.圖形界面設(shè)計(jì)舉例菜單的制作用StripChart顯示一組隨機(jī)數(shù)定時(shí)溫度采集顯示,2020/4/25,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)用程序。,2020/4/25,ActiveX可以用來開發(fā)能在不同的開發(fā)環(huán)境中重復(fù)使用的組件。下面是其中的一些技術(shù):ActiveX自動(dòng)化在一個(gè)程序中自動(dòng)操作另一個(gè)程序。例如,在測試程序中,可以使用ActiveX自動(dòng)化使LabWindows/CVI程序中在后臺操作MicrosoftWord,生成帶有圖形和表格并顯示不同字體的測試報(bào)告。ActiveX控件在外部程序中使用獨(dú)立的交互式對象。例如,可以在容器中(如LabWindows/CVI的面板)嵌入并使用一個(gè)MicrosoftCalendar控件或者M(jìn)easurementStudio3DGraph控件。ActiveX文檔在容器中(如LabWindows/CVI的面板)查看文檔。例如,可以把一個(gè)MicrosoftWord文檔或Excel電子表格放在LabWindows/CVI的面板中顯示。,2020/4/25,ActiveX控件ActiveX控件是LabWindows/CVI的外部組件,可以象LabWindows/CVI的內(nèi)部控件一樣使用。設(shè)計(jì)帶有ActiveX控件的程序選擇ActiveX控件:在UIR窗口選擇Creat>>ActiveX,選擇CreatControl選項(xiàng),在ActiveX控件列表中選擇需要的ActiveX控件,單擊OK按鈕。設(shè)置ActiveX控件屬性:雙擊ActiveX控件,也可以點(diǎn)擊編輯控件對話框中的“PropertySheets”按鈕,編輯控件特性頁。,2020/4/25,生成ActiveX控件驅(qū)動(dòng)程序:在Tools菜單,選擇CreateActiveXController,或右擊ActiveX控件選擇GenerateActiveXControlDriver,運(yùn)行特定控件的ActiveX控制器向?qū)?,完成之后生?fp文件。在使用.fp中的函數(shù)之前,用GetObjHandleFromActiveXCtrl函數(shù)獲得ActiveX控件句柄。設(shè)計(jì)舉例(媒體播放器),2020/4/25,變量、函數(shù)、參數(shù)名稱的命名建議名稱要有意義,使用單詞或縮寫不易過長,不要超過40個(gè)字符,20個(gè)以內(nèi)為宜宏定義:全部用大寫字母,字符之間用下劃線分隔,如:#defineCHANNEL_NUMBER10;變量名和函數(shù)參數(shù)名:第一個(gè)單詞全用小寫,其余單詞詞首大寫,其余用小寫,如:intbufferSize;doubledSampRate;函數(shù)名:每個(gè)單詞開頭字母大寫,其余用小寫,如:doubleReadCVT(intchNumber)intSetStopFrequency(doublestopFrequency),