【正文】
公當(dāng)中,那么桌面電子鐘成為必要,但是由于桌面上系統(tǒng)時(shí)間存在一些弊端,例如數(shù)字較小,容易被忽略,調(diào)整時(shí)間必須進(jìn)入系統(tǒng)文件才可以完成等等,此次設(shè)計(jì)就是以此為切入點(diǎn),針對(duì)于使用計(jì)算機(jī)的人群,完善系統(tǒng)時(shí)間存在的一些弊端,為用戶提供方便,并且推動(dòng)電子行業(yè)的發(fā)展以適應(yīng)用戶的需求,同時(shí)鍛煉自己的動(dòng)手能力、編程能力以及學(xué)習(xí)能力,理論聯(lián)系實(shí)際,為以后的工作奠定基礎(chǔ)[2]。本次設(shè)計(jì)的電子鐘存在一些不足之處,如日歷顯示單調(diào),不可以調(diào)整,若需要更改鬧鐘提醒音樂,只可以通過修改程序?qū)崿F(xiàn)。然后運(yùn)用可視化高級(jí)程序設(shè)計(jì)語言Visual basic語言來編寫, Visual basic簡單易學(xué),并且Visual basic可以通過對(duì)控件屬性的直接設(shè)置,減少一些程序,使編程變得更加方便、快捷?!癇ASIC”指的是BASIC語言,它是一種在計(jì)算機(jī)技術(shù)發(fā)展歷史上應(yīng)用得最為廣泛的語言。 basic集成開發(fā)環(huán)境Visual basic集成開發(fā)環(huán)境(Integrated Development Environment,IDE)是一組軟件工具,它是集應(yīng)用程序的設(shè)計(jì)、編輯、運(yùn)行、調(diào)試等多種功能于一體的環(huán)境,為程序設(shè)計(jì)提供了極大的便利[4]。Visual ,它有三種版本,各自滿足不同的開發(fā)需要。(2)專業(yè)版。企業(yè)版使得專業(yè)編程人員能夠開發(fā)功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。Visual basic采用了面向?qū)ο笤O(shè)計(jì)思想,對(duì)象是一個(gè)抽象的概念,是將程序和數(shù)據(jù)封裝起來的一個(gè)軟件部件,是經(jīng)過調(diào)試可以直接使用的程序單位。這種“所見即所得”的方式極大的方便了程序員進(jìn)行界面設(shè)計(jì)。事件驅(qū)動(dòng)非常適合圖形用戶界面的編程方式。這樣的應(yīng)用程序代碼長度較短,既易于編寫又易于維護(hù),極大地提高了程序設(shè)計(jì)效率。Visual basic利用數(shù)據(jù)Control控件可以訪問多種數(shù)據(jù)庫Visual Control控件,不但可以用最少代碼實(shí)現(xiàn)數(shù)據(jù)庫操作和控制,也可以取代Data Control控件和RDO Control控件。Visual TML(Dynamict TML)設(shè)計(jì)工具,利用這種技術(shù)可以動(dòng)態(tài)創(chuàng)建和編輯Web頁面使用戶在Visual basic中開發(fā)多功能網(wǎng)絡(luò)應(yīng)用軟件Software。通過動(dòng)態(tài)數(shù)據(jù)交換(DDE)編程技術(shù)Visual basic開發(fā)應(yīng)用能和其他Windows應(yīng)用之間建立數(shù)據(jù)通信,通過動(dòng)態(tài)鏈接庫技術(shù)在Visual basic中可方便地用C語言或匯編語言編寫也可用Windows應(yīng)用接口(API) 。不論是Microsoft Windows應(yīng)用程序的資深專業(yè)開發(fā)人員還是初學(xué)者,Visual basic都為他們提供了整套工具,以方便開發(fā)應(yīng)用程序。 Photoshop Photoshop是Adobe公司旗下最為出名的圖像處理軟件之一,集圖像掃描、編輯修改、圖像制作、廣告創(chuàng)意,圖像輸入與輸出于一體的圖形圖像處理軟件。雙擊時(shí)鐘界面可以改變當(dāng)前顯示的時(shí)間而不影響系統(tǒng)時(shí)間,鼠標(biāo)可以拖動(dòng)時(shí)鐘和日歷放到適合的位置,如不需要桌面時(shí)鐘工具,可以隨時(shí)關(guān)閉顯示。桌面電子鐘包括時(shí)鐘和日歷兩個(gè)部分,時(shí)鐘部分可以校時(shí)、設(shè)定鬧鐘。將所得到的角度轉(zhuǎn)換成弧度,即角度乘以。Auto Redraw屬性為是否自動(dòng)刷新或重畫窗體上所有圖形,本次設(shè)計(jì)選擇Ture,即自動(dòng)重繪,以清除時(shí)針、分針、秒針在表盤上走過的痕跡。Picture屬性為窗體的背景圖片,將實(shí)現(xiàn)用Photoshop軟件處理好的表盤圖片插入窗體中,以直接顯示時(shí)鐘界面,以避免使用圖形框控件的復(fù)雜。時(shí)鐘(Timer)的主要屬性為Enable屬性和Interval屬性。在程序設(shè)計(jì)時(shí),利用該屬性可以靈活地啟用或停用Timer事件。如果Interval屬性為0,時(shí)鐘不產(chǎn)生Timer事件。Border Style為畫線的風(fēng)格,共有7種:0Transparent(無線)、1Solid(實(shí)線,此為默認(rèn)值)、2Dash(虛線)、3Dot(點(diǎn)線)、4DashDot(單點(diǎn)劃線)、5DashDotDot(雙點(diǎn)劃線)、6Inside Solid(內(nèi)部實(shí)線),設(shè)計(jì)時(shí)應(yīng)選擇1。本次設(shè)計(jì)主要用此控件執(zhí)行“關(guān)閉”事件。Picture屬性為設(shè)置命令按鈕上的圖片,插入經(jīng)常使用的關(guān)閉按鈕的圖片,以方便于用戶了解。(5)形狀(Shape)形狀(Shape)控件可以在窗體上插入圖形,但是不可以執(zhí)行事件,在時(shí)鐘界面中,它作為一個(gè)輔助對(duì)象,起到優(yōu)化美觀的作用,即在時(shí)針、分針、秒針三條線的連接處插入一個(gè)圓形的圖形。本次設(shè)計(jì)選擇白色。 根據(jù)算法和流程圖,首先定義常量、變量,加載窗體后,將系統(tǒng)時(shí)間賦值給分別代表時(shí)、分、秒的變量H、M、S,將窗體背景設(shè)為表盤背景,設(shè)置好合適的大小后,設(shè)定坐標(biāo)系,將三條線的起點(diǎn)設(shè)置在坐標(biāo)原點(diǎn),即窗體的中心,一秒啟動(dòng)一次Timer事件。定義了一個(gè)常量,這個(gè)常量的值為1度的弧度值Dim rtnamp。時(shí)針長 = True 39。將RGB(66,66,66)顏色設(shè)置為透明的rtn=Set Window Pos(,1,0,0,0,0,3)39。獲取當(dāng)前秒數(shù),并轉(zhuǎn)換成相應(yīng)的角度 每秒的間隔是6度Mr=M*6+S/6039。End Sub本次設(shè)計(jì)的日歷模塊主要實(shí)現(xiàn)調(diào)用計(jì)算機(jī)系統(tǒng)日歷,顯示在桌面上,可以方便地提示人們當(dāng)前的年、月、日以及星期[9]。主要屬性設(shè)置如下。Border Style設(shè)置邊界樣式,取值為:0None(無邊界線)、1Fixed Single(固定單線框),選擇0None(無邊界線)。主要程序如下?!澳辍盿mp。End SubPrivate Sub Label1_Mouse Down(Button As Integer, Shift As Integer, X As Single, Y As Single)Release CaptureSend Message ,amp。End Sub首先在文本框中顯示表盤上當(dāng)前的時(shí)間,通過鍵盤輸入賦值,返回到時(shí)鐘程序中,以在時(shí)鐘上顯示調(diào)整后的時(shí)間,或者可以通過鼠標(biāo)點(diǎn)擊加減時(shí)間數(shù),每點(diǎn)擊一次改變值為1。 調(diào)時(shí)對(duì)象窗口(1)命令按鈕(Command Button)選擇兩個(gè)命令按鈕(Command Button)Command1和Command2按鈕,分別設(shè)定名字為“確定”、“取消”。在文本框的屬性中設(shè)置其字體大小、顏色等,及文本框的大小。設(shè)計(jì)中選擇Ture,這樣用戶可用通過鍵盤上的“Tab”鍵實(shí)現(xiàn)文本框的選擇[11]。將其設(shè)置為Ture,以響應(yīng)事件。Value屬性值對(duì)應(yīng)于滾動(dòng)框在滾動(dòng)條中的相應(yīng)位置,是一個(gè)整數(shù)。 倒計(jì)時(shí)對(duì)象窗口其控件屬性的設(shè)置與調(diào)時(shí)界面的設(shè)置類似,只將其命令按鈕(Command Button)命名為“開啟”和“關(guān)閉”,單擊開啟按鈕,則在日歷界面上顯示倒計(jì)時(shí),與日歷相隔顯示,單擊關(guān)閉按鈕,則不顯示倒計(jì)時(shí),在日歷界面上只顯示日歷部分?!霸隆盠abel2=Day(Now)Label3=Weekday Name(Weekday(Date))End IfIf g=1 ThenIf k=10ThenLabel1=Year(Now)amp。 a amp。 c amp。 b amp。然后判斷文本框中的數(shù)值是否分別于時(shí)、分、秒的數(shù)值相同,如果相同,則彈出音樂界面,播放音樂,單擊關(guān)閉按鈕,退出音樂,如果沒有點(diǎn)擊,則循環(huán)播放音樂。在工程中添加窗體Form4,設(shè)計(jì)播放音樂提醒界面,設(shè)計(jì)中使用到了Windows Media Player控件,因?yàn)樗皇浅S每丶孕鑼⑵涮砑拥焦ぞ邫谥?,單擊“工程”下的“部件”命令將Windows Media Player控件前打鉤,單擊“應(yīng)用”將其添加。再播放End IfEnd SubPrivate Sub Command1_ Click()Unload Form4End Sub5電子鐘的設(shè)計(jì)說明和調(diào)試(1)首先認(rèn)真學(xué)習(xí)Visual basic語言及其開發(fā)環(huán)境,搜集資料,整理思路,將設(shè)計(jì)分成幾個(gè)獨(dú)立的模塊,思考每一步的算法,逐步實(shí)現(xiàn)所有的功能。第四步,通過添加模塊實(shí)現(xiàn)多個(gè)窗體同時(shí)顯示。(2)本次設(shè)計(jì)考慮到了桌面電子鐘的實(shí)用性,也考慮了其美觀,在網(wǎng)上搜集了表盤的圖片和日歷的背景,然后通過Photoshop軟件對(duì)其進(jìn)行調(diào)整大小、背景透明等處理。(2)編寫右鍵菜單時(shí),窗體便出現(xiàn)邊框,這與初始設(shè)想相違背,影響了美觀。在模塊中輸入:Public Declare Sub Release Capture Lib “user32” ()Public Declare Function Send Message Lib “user32”Alias “Send Message A”(By Val hwnd As Long, By Val w Msg As Long, By Val w Param As Long, lParam As Any)AsLong在所需移動(dòng)的窗體里添加代碼Private Sub Form_ Mouse Down(Button As Integer, Shift As Integer, X As Single, Y As Single)Release CaptureSend Message Me. hwnd, amp。 操作流程圖雙擊“” ,桌面上會(huì)顯示所運(yùn)行的界面。雖然有更強(qiáng)大的功能需要完善,而且有些程序編寫技巧上有點(diǎn)笨拙,但是通過制作畢業(yè)設(shè)計(jì)電子鐘的程序設(shè)計(jì),我無論從理論中還是實(shí)踐中都學(xué)到了很多的知識(shí),首先,我深刻體會(huì)到理論知識(shí)對(duì)實(shí)踐有很大的指導(dǎo)作用,但是我們學(xué)習(xí)知識(shí)不能只局限于書本,要理論與實(shí)踐相結(jié)合,讓自己學(xué)到更多的東西,完善自己。在這次畢業(yè)設(shè)計(jì)中,我鞏固了所學(xué)的知識(shí),也擴(kuò)大了自己的知識(shí)面。當(dāng)然,在此次設(shè)計(jì)中,還有一些功能需要完善,例如備忘錄等功能,我會(huì)不斷努力,完善自己,提高自己的水平。Dim X0, Y0 As IntegerPrivate Sub Form_ Load() H = Hour(Now) M = Minute(Now) S = Second(Now) (1390, 1470)(1455, 1475)len_1 = Sqr(( ) ^ 2 + ( ) ^ 2) 39。窗體自動(dòng)重繪 = 1000 39。設(shè)置窗體總在最前面,如果將上面語句中的1改為2則取消窗體總在最前面End SubPrivate Sub Timer1_Timer() 39。獲取當(dāng)前分?jǐn)?shù),并轉(zhuǎn)換成相應(yīng)的角度 每分的間隔是6度,同時(shí)加上秒帶來的分針的間隔差 Hr = (H Mod 12) * 30 + Mr / 12 39。Dim X0, Y0 As IntegerDim k As IntegerPrivate Sub Form_Load() Me. Back Color = RGB(66, 66, 66) rtn = Get Window Long(hwnd, GWL_EXSTYLE) rtn = rtn Or WS_EX_LAYERED Set Window Long hwnd, GWL_EXSTYLE, rtn Set Layered Window Attributes hwnd, RGB(66, 66, 66), 0, LWA_COLORKEY 39。 “月” Label2 = Day(Now) Label3 = Weekday Name(Weekday(Date)) End IfIf g = 1 Then k = k + 1 If k = 10 Then Label1 = Year(Now) amp。 a amp。 c amp。 b amp。End SubPrivate Sub Label1_Mouse Down(Button As Integer, Shift As Integer, x As Single, y As Single) Release Capture Send Message Me. hwnd, amp。End Sub設(shè)置模塊程序(form3)Private Sub Form_ Load() = Fix(H) = Fix(M) = Fix(S) = Year(Now) = Month(Now)