?

機房實驗教學系統的優化研究與實現

2017-03-06 20:43汪彥劉智勇龍振球
計算機時代 2017年2期
關鍵詞:用戶界面鼠標

汪彥++劉智勇++龍振球

摘 要: 針對現存的機房實驗教學系統存在的界面簡陋、屏幕共享異常等問題,研究了相關優化技術,實現了系統改進。改進系統采用SkinMagic換膚軟件、真彩色工具欄類、圖標按鈕等方式美化用戶界面,選用合理的鼠標信息捕獲技術成功解決了屏幕共享異常問題。實際應用表明,該改進系統界面美觀、性能穩定,有效改善了用戶體驗,有利于提升實驗教學的質量。

關鍵詞: 機房實驗教學系統; 用戶界面; 屏幕共享; 鼠標

中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2017)02-49-03

0 引言

中國高校自1999年開始擴招以來,已經走過了十多個年頭,高校的在校生人數越來越龐大。隨著學生規模的不斷膨脹,高校計算機實驗室的教學活動面臨日益嚴峻的挑戰,教學質量堪憂[1]。

惟有改革,才有出路。高校教師積極投身機房實驗教學的改革實踐中,取得了一定實效。在信息技術與教育教學深度融合的時代背景下,一些研究者和軟件公司針對機房教學的現狀,精心設計出專門適用于機房實驗教學的軟件系統[2-4]。

我們采用C/S模式、ADO數據訪問技術、Socket通信技術,實現了一個機房實驗教學管理系統。該系統利用Visual C++6.0開發,以SQL Server 2000作為后臺數據庫,包括教師端軟件、學生端軟件和數據庫三部分,實現了屏幕共享、在線討論、電子考勤、任務下達、作業提交等比較豐富的功能,基本滿足了機房實驗教學的需求[4]。但是,該系統界面比較簡陋,用戶體驗欠佳。同時,系統在使用屏幕共享功能時,教師端操作系統不能響應用戶的鼠標雙擊操作。針對這兩個問題,本文研究了相關優化技術,實現了界面美觀、性能穩定的改進機房實驗教學系統。

1 機房實驗教學系統的界面美化

利用MFC建立用戶界面和應用程序框架,是利用VC6.0開發該系統時的主流做法,因為這種方法簡單快捷,能極大提高地開發效率。但是,利用MFC框架構建的用戶界面常常顯得簡陋,其視覺效果很難令人滿意。本文采用SkinMagic換膚軟件、真彩色工具欄類、CButtonST類等方式,對文獻[4]實現的機房實驗教學系統進行界面美化,效果顯著。

1.1 SkinMagic換膚技術

SkinMagic[5-6]是一款界面編輯軟件,提供了SkinMagicBuilder作為可視化的界面設計工具,無需編程,就可設計出美觀大方的用戶界面。設計完成的界面可以獨立保存為皮膚文件,在VC中通過SkinMagic提供的編程接口可將皮膚文件導入工程,美化用戶界面。這種技術實現了界面設計與程序編寫的分離,允許美工人員和軟件設計師獨立工作,最后將兩者的工作成果完美結合,特別適合軟件開發中不同類型人員的分工協作。我們研究了SkinMagic換膚技術,并用于機房實驗教學系統的界面美化,換膚前后視覺效果差異顯著,如圖1和圖2所示。

1.2 真彩色工具欄類的使用

利用VC6.0的MFC框架創建應用程序,默認的工具欄類并不支持真彩色圖標的顯示。然而,帶有真彩色圖標的工具欄卻能讓我們設計的軟件更炫更出彩,改善用戶的使用體驗。網絡上提供了CtrueColorToolBar類的下載,這是一個用于加載真彩色位圖制作工具欄的類。同時,利用Photoshop、Visual Toolbar 1.5等工具軟件,能夠非常方便地制作用于工具欄顯示的真彩色圖標。我們結合上述技術,給機房實驗教學系統制作了一個帶有漂亮圖標的真彩色工具欄,用戶反響良好。改進后的帶真彩色工具欄的系統界面截圖如圖3所示。

1.3 圖標按鈕CButtonST類的使用

VC6.0中默認的CButton類只能創建普通的按鈕,按鈕的視覺效果難以令人滿意。CButtonST類是CButton的派生類,能夠實現豐富多彩的按鈕效果,可從網上下載。CButtonST類包括BtnST.h、BtnST.cpp、BCMenu.h和BCMenu.cpp四個文件,我們可在當前的VC++工程中導入這些文件,然后在StdAfx.h中編寫相應的include語句,即可在編程時使用該類。我們利用該類,為機房實驗教學系統加上了漂亮的按鈕,這些按鈕能同時顯示文字和精美的彩色圖標,當鼠標移動到按鈕上面時還可顯示相應的提示文字。改進后的帶圖標按鈕的系統界面截圖如圖4所示。

2 鼠標捕獲技術的對比與選取

屏幕共享是機房實驗教學系統的重要功能,文獻[7]提供了一種屏幕共享方案。我們應用該方案研發了機房實驗教學系統,但是實驗中發現,使用屏幕共享時教師端操作系統對于鼠標雙擊操作沒有響應。經過仔細分析和反復對比實驗,發現問題的根源在于使用了不恰當的鼠標信息獲取技術。

在屏幕共享具體應用中,除了屏幕畫面是基本的、必不可少的共享對象外,鼠標光標常常是另外一個關注的焦點。在機房實驗教學時,先將教師端屏幕中的鼠標光標的位置及其圖標實時地呈現在學生端屏幕畫面中,對于學生正確理解教師的操作演示要領至關重要。然后是截屏,雖然利用GDI函數能夠便捷地截取屏幕畫面,但是并不能同時獲取到鼠標光標的相關信息。在Windows操作系統中,利用API函數可以獲取鼠標信息,但是不同的鼠標獲取技術具有不同的優缺點,需要根據具體應用場景的需求恰當選取。

2.1 鼠標信息獲取的基本方法

文獻[8]介紹了一種利用API函數獲取鼠標光標的簡單方法(下文稱為法1),這種方法的主要步驟:首先調用GetCursorPos函數獲取當前鼠標光標的位置,然后調用GetCursor函數得到鼠標光標的圖標句柄,最后將鼠標光標的圖標繪制到當前抓取的屏幕位圖的相應位置上。

上述法1的優點在于,思路簡單明了,編程方便快捷。不過,文獻[7]指出,如果當前鼠標焦點不在屏幕共享系統的教師端軟件界面之中,那么法1雖然能夠準確獲取鼠標光標的位置,卻不能準確獲取鼠標光標的圖標。在機房實驗教學的實際應用過程中,教師往往會通過實際操作進行演示,教師端鼠標圖標不可避免會發生變化,不同的圖標代表著不同的含義。在機房實驗教學系統的屏幕共享系統中,采用法1來捕獲和共享鼠標信息顯然不能滿足實際需要。

2.2 鼠標信息獲取的改進方法

文獻[7]提出了一種改進的鼠標信息獲取方法(下文稱為法2),這種方法的最大特點是調用了AttachThreadInput函數,從而使得系統中不同的進程和線程能夠共享輸入隊列。

法2相對比法1,其實現過程較為復雜,除了調用AttachThreadInput函數外,還需要調用GetWindowThreadProcessID、WindowFromPoint、GetCurrentThreadId等函數,其具體實現代碼可參考文獻[7]。法2雖然實現過程復雜,編程比較繁瑣,但是確實解決了法1的弊端。不管當前鼠標焦點是否在屏幕共享系統的教師端軟件界面中,利用法2都能夠精準獲取鼠標的位置與圖標信息。

法2在解決法1弊端的同時,卻產生了新的嚴重問題。如果采用法2捕獲鼠標信息,當教師啟動機房實驗教學系統的屏幕共享功能后,教師端操作系統無法響應教師所進行的鼠標雙擊操作,只有退出屏幕共享功能,系統才能正常響應鼠標雙擊。這說明采用法2捕獲和共享鼠標信息將嚴重干擾用戶對電腦的正常操作,同樣不能滿足實際需求。

2.3 鼠標信息獲取的推薦方法

實際上,利用API函數GetCursorInfo能夠捕獲鼠標信息,同時避免法1和法2產生的問題,這正是本文推薦的方法(不妨稱為法3)。法3除了需要調用GetCursorInfo函數外,還需要使用光標結構體類型CURSORINFO,下面給出利用VC6.0實現的核心代碼:

//繪制鼠標圖標到屏幕圖像中

通過實驗發現,利用上述代碼捕獲鼠標時,捕獲到鼠標光標的位置信息與實際位置不一致,存在一定的偏差。經過反復試探,確認捕獲到的鼠標光標的橫、縱坐標均比其實際值大10,因此,在屏幕圖像中繪制鼠標圖標之前,還應該校準鼠標光標的坐標,具體代碼如下所示:

point.x-=10;

point.y-=10;

3 結束語

針對文獻[4]設計和實現的機房實驗教學系統存在的用戶界面簡單乏味、屏幕共享功能異常等缺陷,本文探討相關應用技術,有效解決了這些問題。采用優化技術得到的改進機房實驗教學系統自投入使用以來,接受了我校師生的教學實踐檢驗,其精美的界面和穩定的性能廣受好評,為實驗教學改革提供了強有力的技術支持。當然,隨著信息技術的發展,機房實驗教學系統必然面臨軟硬件環境變化更新等挑戰,師生也會提出更高的需求,我們將采取積極主動的態度,適時完善系統,使之更好地為教學服務。

參考文獻(References):

[1] 汪彥,譚新良,何建新,費雄偉.高校C語言程序設計實驗教學

改革研究與實踐[J].電腦編程技巧與維護,2013.9(18):138-139

[2] 路芳瑞,石何太,張揚.基于C/S與RIA的實驗教學管理系統的

設計與實現[J].實驗室科學,2012.6(15):97-99

[3] 唐存東,全上克,王志平.高校實驗室教學管理系統設計與實

現[J].計算機與現代化,2013.9:113-116

[4] 汪彥,譚新良,何建新.基于C/S模式的機房實驗教學系統設

計與實現[J].計算機時代,2014.8:73-75

[5] 任秀英,王崛,余立新.應用SkinMagic設計交互式軟件界面[J].

電腦編程技巧與維護,2010.16:27-68

[6] 王敬,孫守遷,楊鐘亮.面向VC界面的視覺優化設計方法與

應用[J].計算機應用,2010.30:192-195

[7] 汪彥,黃雪華,涂立.一種改進的應用于機房教學的屏幕共享

方案[J].計算機與現代化,2011,9:82-85

[8] 劉銳寧,宋坤.Visual C++開發典型模塊大全[M].人民郵電出

版社,2009.

猜你喜歡
用戶界面鼠標
自然用戶界面在智能家居系統中的應用路徑創新研究:生成式人工智能技術的調節作用
基于CiteSpace的國外用戶界面體驗圖譜量化分析
Progress in Neural NLP: Modeling, Learning, and Reasoning
物聯網用戶界面如何工作
UI用戶界面色彩設計研究
基于B/S的跨平臺用戶界面可配置算法研究
精彩絕倫的Android UI設計:響應式用戶界面與設計模式
超能力鼠標
鼠標也可以是這樣的
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合