消息框作為計算機向人發(fā)送消息的一種方式,一直在Windows系列操作系統(tǒng)中廣泛應用。然而,消息框由于種種原因會對人們的操作使用造成干擾。針對當前Windows系統(tǒng)的消息框的界面和執(zhí)行過程分析,提出相應的改進,以減少消息框占用的面積,減弱對人們使用的干擾。最后用Visual Studio開發(fā)工具實現(xiàn)了新的消息框程序。
【關(guān)鍵詞】Windows系統(tǒng) 消息框
人機交互方式以發(fā)起者來分類主要有2種方式,一種是人向機器主動發(fā)起的交互,另一種是機器向人主動發(fā)起的交互。自從出現(xiàn)圖形化界面一來,消息框用在機器向人發(fā)送臨時消息的而發(fā)起的一種交互方式,在計算機人機交互中大量應用,成為一種主要的方式。
最初,在圖形化的pc系統(tǒng)上消息框是用來提示用戶操作系統(tǒng)發(fā)生的異常和系統(tǒng)的報警,隨著Windows系統(tǒng)的發(fā)展成熟和互聯(lián)網(wǎng)的普及在一些常用的軟件上消息框還用來向使用者提示后臺軟件的操作和新聞信息或者帶有商業(yè)利益的推廣信息。
隨著消息框使用的增多,尤其是帶有商業(yè)利益推廣信息的彈框式消息框的濫用,凸顯出了消息框?qū)θ藗兪褂脮r造成的妨礙效果。因此,引發(fā)了人們從法律法規(guī)、道德、技術(shù)等層面探討如何消除消息框?qū)θ藗冊斐傻姆恋K。
1 原因分析
分析消息框?qū)θ藗兪褂迷斐煞恋K的原因,本文認為主要有以下幾點:
(1)消息框顯示時是最前窗口的方式顯示,如果其顯示的位置有人們正在關(guān)注的信息或者正在使用的控件,必然會遮擋這些信息和控件。
(2)消息框顯示后,通常需要人們進行一些操作才能關(guān)閉,因此會打斷人們當前的使用。
(3)在商業(yè)目的消息框上,由于其設計和使用的目的本身就是傳播帶商業(yè)利益的推廣信息,帶著這個目的很可能本身就沒有考慮對人們使用的妨礙因素。
本文認為第1個和第2個原因是可以通過改良消息框的界面設計來減少對人們正在關(guān)注信息或使用控件的遮擋和減弱對人們使用的影響。從而,使人們更好的接受非商業(yè)推廣用途的消息框。
2 消息框程序設計
目前,在Windows系列操作系統(tǒng)上的消息框,其界面布局通常有以下幾個部分組成:
(1)向人們表述消息信息的文字或圖片區(qū)域;
(2)窗口的外框;
(3)背景填充區(qū)域;
(4)操作按鈕或其它控件。
消息框?qū)崿F(xiàn)向人們傳遞消息的功能主要由文字或圖片區(qū)域完成,操作按鈕或其它控件用于人們對傳遞過來的消息做出反應,而窗口外框和背景填充區(qū)域并無實際作用。因此,如果去掉邊框再壓縮背景填充區(qū)域的面積,則可以大幅減小消息框在顯示需要占用的面積,從而減少對人們使用的遮擋。
由于,消息框通常需要人們處理后才能從屏幕上消失,這是打斷人們使用的原因。如果讓消息框在顯示了一段時間后,自動最小化到系統(tǒng)托盤。則既可以減少對人們使用的干擾,又可以避免出現(xiàn)的時間過短導致未閱讀完消息框的內(nèi)容。
3 消息框程序?qū)崿F(xiàn)
本文采用Visual Studio 2010開發(fā)平臺用C#語言WPF框架實現(xiàn)了根據(jù)上述2改良的消息框。之所以選擇用C#語言WPF框架,是因為C#語言作為Microsoft自己開發(fā)的編程語言,在Windows系統(tǒng)上運行比JAVA的執(zhí)行效率要高出很多。C#采用面向?qū)ο蟮木幊趟枷朐陂_發(fā)的過程中代碼簡潔。WPF框架相比Winform框架功能強大很多,減少了控件對系統(tǒng)資源的占用,優(yōu)化了多線程的處理,對于界面的設計由于WPF框架采用XAML語言實現(xiàn)復雜的界面時只需要簡單的文本即可完成。
實現(xiàn)隱藏消息框的外框是通過在Grid控件中的WindowStyle屬性設置為None來。代碼如下:
Timer類可以實現(xiàn)一個或多個函數(shù)延遲指定的時間后執(zhí)行。這個功能可以用來控制消息框窗口的顯示時間,在達到一定的時間后,觸發(fā)執(zhí)行函數(shù)將消息框最小化到系統(tǒng)托盤。其中Interval屬性用來設置延遲的時間。由于Timer類本身是可以循環(huán)執(zhí)行的,所以需要在執(zhí)行函數(shù)里面將Timer的Enable屬性設置為false,以避免循環(huán)執(zhí)行的BUG。
C#語言中提供了NotifyIcon類系統(tǒng)托盤的相關(guān)功能。Timer的執(zhí)行函數(shù)里面設置將窗口隱藏時同時將系統(tǒng)托盤圖標設計為可見即可實現(xiàn)將消息框最小化到系統(tǒng)托盤功能。代碼如下:this.Hide(); this.notifyIcon1.Visible=true;
同時還需要在系統(tǒng)托盤中的鼠標點擊事件中添加將窗口顯示的代碼:
this.Visible = true;
this.WindowState =FormWindowState.Normal;
this.notifyIcon1.Visible = false;
對于顯示文字信息的消息框,可以根據(jù)其需要顯示的文字的長度來決定使用多大的消息框。以避免用一個過大的消息框顯示較少的內(nèi)容,從而占用過多的顯示面積的問題。
將Windows系統(tǒng)現(xiàn)用的消息框和改良后的消息框比較,以同樣大小的字體顯示同樣的內(nèi)容時,可以縮小到原來的40%左右。在顯示內(nèi)容時可以在人們沒有任何處理的情況下從屏幕上消失,以減少對人們使用的干擾。
4 小結(jié)
對Windows系統(tǒng)上運行的以商業(yè)推廣目的的消息框,因為其使用的目的是從商業(yè)利益考慮的,所以本文的研究不能減少這類消息框?qū)θ藗兪褂玫母蓴_。而對于合理的用途的消息框,可以采用本文的研究以減少對人們使用時的遮擋帶來的影響和操作時的干擾。
參考文獻
[1]羅仕鑒.人機界面設計[M].北京:機械工業(yè)出版社,2002.
[2]網(wǎng)信辦:會同多部門聯(lián)合啟動“整治網(wǎng)絡彈窗”行動[J].信息安全與通信保密,2014(10):10.
[3]王君知.網(wǎng)絡彈窗廣告的倫理思考[J].湘南學院學報,2011(06):22-25+50.
[4]董明.如何禁止電腦軟件彈窗廣告[J].計算機與網(wǎng)絡,2015(13):34.
[5]王松.網(wǎng)絡不良彈窗的危害及防治[J].法制與社會,2015(14):58-59.
[6]國家網(wǎng)信辦等將聯(lián)合整治網(wǎng)絡彈窗[J].青年記者,2014(29):17.
作者簡介:
謝元忱(1988-),男,湖南省衡陽市人?,F(xiàn)就讀于南華大學,碩士研究生。
作者單位
南華大學 湖南省衡陽市 421000