【正文】
amp。, vbTwips, vbPixels) = Str() amp。, vbTwips, vbPixels) = hei 39。 wY = Weekday(kDay) Select Case wY Case 2, 3, 4, 5, 6, 7 ShowNumW wPw1(0), Week_p, wY 1, 1, 1 ShowNumWs wPw1(2), wWeekP, wY 2 Case 1 ShowNumW wPw1(0), Week_p, 0, 1, 1 ShowNumWs wPw1(2), wWeekP, 6 End Select End Sub Private Sub RunMain(picScroll As PictureBox) 39。單擊返回今天 Private Sub C_clock_Click() = Year(Date) = Month(Date) = Day(Date) txt_Sub disPlay (Date) End Sub Private Sub Form_Activate() RunMain picScroll End Sub Private Sub Form_Load() 39。單一功能鍵按下、松開 Private Sub cmdops_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Show_b Picture5, P8, cmdOps(Index) End Sub Private Sub cmdops_MouseUp(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Show_b Picture5, P9, cmdOps(Index) End Sub 39。 _ 多功能電子日 歷 39。H800 Const DT_RIGHT As Long = amp。滾動字幕 Private Declare Function DrawText Lib user32 Alias DrawTextA (ByVal hdc As Long, ByVal lpStr As String, ByVal nCount As Long, lpRect As RECT, ByVal wFormat As Long) As Long Private Declare Function GetTickCount Lib kernel32 () As Long Const DT_BOTTOM As Long = amp。單擊時鐘數(shù)字將返回到今天。當(dāng)準(zhǔn)備運行和測試應(yīng)用程序時 ,只需極短時間即可完成編譯。通過這門課程的學(xué)習(xí),我已能用 VB編寫簡單的程序,為了搞好這次畢業(yè)設(shè)計,我決定使用 VB作為編程語言。 2事件驅(qū)動編程 Windows 操作系統(tǒng)出現(xiàn)以來 ,圖形化的用戶界面和多任務(wù)多進(jìn)程的應(yīng)用程序要求程序設(shè)計不能是單一性的 ,在使用 VB設(shè)計應(yīng)用程序時 ,必須首 先確定應(yīng)用程序如何同用戶進(jìn)行交互 .例如發(fā)生鼠標(biāo)單擊、鍵盤輸入等事件時 ,由用戶編寫的代碼控制這些事件的響應(yīng) ,這就是所謂的事件驅(qū)動編程。 我 作為一名中央電大的學(xué)生 , 對 從事計算機(jī)操作和編程工作 有著特殊的愛好,在工作和學(xué)習(xí)之余 , 我時常鉆研專業(yè)課基礎(chǔ)理論,經(jīng)常用 VB搞一些小程序, 在工作中經(jīng)常有人問到農(nóng)歷和公歷的查詢問題。單擊查詢控制面板開關(guān)將向下拉出查詢控制面板。程序應(yīng)用了不規(guī)則窗體技術(shù),使得窗體比較美觀。以前開發(fā) Windows下軟件是專業(yè)人員的工作,需要掌握許多專業(yè)知識和經(jīng)過特殊的培訓(xùn)才能勝任。 美國微軟公司在 1991 年推出 至今已經(jīng)經(jīng)歷了 6個版本, 運行在 win9x 或winme, win2020, winxp, windowsNT等操作系統(tǒng)下,是一個 32 位的應(yīng)用程序開發(fā)工具。 除了微軟之外 ,其他公司也在為 Windows 操作系統(tǒng)平臺制作應(yīng)用程序開發(fā)工具 ,例如前Borland 的公司出品的 Delphi,C++Bulider, J++Bulider 等 ,其他一些公司出品的針對數(shù)據(jù)庫編程的 PowerBulider, PowerDesigner等 ,不可否認(rèn) ,這些產(chǎn)品相當(dāng)出色 ,如果能夠熟練掌握將是編程者能力的體現(xiàn) ,但是必須承認(rèn) ,對 Windows 操作系統(tǒng)最熟悉的還是微軟 ,而且微軟本身 Windows操作系統(tǒng)的源代碼采取不公開的策略 ,使得其他公司出品的產(chǎn)品在實現(xiàn)相同功能時多少都要走些彎路 ,用戶在使用這些產(chǎn)品設(shè)計應(yīng)用程序時 ,程序的效率將會受到影響。 VB在編程者輸入代碼時便進(jìn)行解釋 ,即時捕獲并突出顯示大多數(shù)語法或拼寫錯誤。 第 二 章 用 VB 開發(fā) 多功能日歷 程序 一、本程序運行界面簡介 編程的主導(dǎo)思想是 :先把公、農(nóng)歷的數(shù)據(jù)用數(shù)組查詢設(shè)置好,再通過算法轉(zhuǎn)換成具體應(yīng)用。HA1 Private Declare Function ReleaseCapture Lib user32 () As Long Private Declare Function SendMessage Lib user32 Alias SendMessageA (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long Picture2 cmdt Picture2 Lable4 Picture5 圖中我們看到的一個個小按鈕是用photoshop畫出來的 ,實際上在每個按鈕上面我都加上了透明的 lable 控件 Text1:textbox控件 Updown1 39。H200 Const DT_LEFT As Long = amp。H4 Const DT_WORDBREAK As Long = amp。角度、弧度 Private Sub cmdOp_1_Click(Index As Integer) Select Case Index Case 0 If g = 1 Then If op = Then e = Str((Val(e) * 180 / Pi)) = e Else f = Str((Val(e) * 180 / Pi)) = f End If chk = 1 g = Pi / 180 End If ShowNumARG Pt, wPw1(3), 19 Case 1 If g 1 Then If op = Then e = Str((Val(e) * Pi / 180)) = e Else f = Str((Val(e) * Pi / 180)) = f End If chk = 1 g = 1 End If ShowNumARG Pt, wPw1(3), 20 Case 2 39。 . = e Else f = f amp。 fhSec3 = 0 color_index = 1 jS = 0 = vbRed = 8 = False color1 = 1 flAge = False shxing 39。time to reset = = RectHeight + End If LastFrameTime = GetTickCount() End If DoEvents Loop End Sub Private Sub Timer3_Timer() Dim hei As Integer tiAo = False = 50 hei = ScaleY(, vbTwips, vbPixels) 39。 Str(hei) = hei 39。 + 1 End If End Sub Private Sub Timer6_Timer() Dim hei = False jiSuan = False = 50 hei = Int(ScaleY(, vbTwips, vbPixels) ) 39。小字符顯示 For i = 24 To 1 Step 1 If (i 23 + Len(Trim())) 0 Then deLc = Mid(, i 23 + Len(Trim()), 1) = Str(Len(Trim())) Else deLc = End If Select Case deLc Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 kL = Val(deLc) ShowNumSam wPw2(1), Pt, kL + 1, 1, i Case . ShowNumSam wPw2(1), Pt, 14, 1, i Case E ShowNumSam wPw2(1), Pt, 12, 1, i Case + ShowNumSam wPw2(1), Pt, 13, 1, i Case ShowNumSam wPw2(1), Pt, 15, 1, i Case Else ShowNumSam wPw2(1), Pt, 0, 1, i End Select Next i End Sub Public Sub SetAutoRgn(hForm As Form, O。 Str(hei) = hei 39。 Str(ScaleY(, vbTwips, vbPixels)) amp。err MsgBox Error scrolling text, vbExclamation EndingFlag = True Else = = 0 = RectHeight = = + End If Do While Not EndingFlag If GetTickCount() LastFrameTime IntervalTime Then DrawText , ScrollText, 1, DrawingRect, DT_CENTER 39。 39。 Trim(Str(Index)) = e Else f = f amp。數(shù)字按下、松開 Private Sub cmdNum_MouseDown(Index As Integer, Button As Integer, Shift As Integer, x As Single, y As Single) Show_b Picture5, P8, cmdNum(Index) End Sub Private Sub