【VB开源代码栏目提醒】:文章导读:在新的一年中,各位网友都进入紧张的学习或是工作阶段。
网学会员整理了VB开源代码-VB多功能电子日历的开发 - 其它论文的相关内容供大家参考,祝大家在新的一年里工作和学习顺利!
目目目目录录录录摘要关键字前言第一章
VB语言概述11、
VB简介11112222、
VB语言的基本特点及
VB应用程序的基本持点11113333、为何我选择
VB作为开发语言14、
VB6.0应用的基本开发方法第二章用
VB开发多功能日历程序22221111、本程序运行界面简介22222222、本程序部分控件的设置22223333、主程序部分
代码第三章毕业设计总结第四章主要参考文献附录摘摘摘摘要要要要在日常生活和工作中经常有人用到农历和公历的查询问题。
因此我借这次
毕业设计之机在辅导老师的指导下编写了一个可以在
VB6下正常运行的日历、计算器多功能应用程序编程的思路是:先把公、农历的数据用数组查询设置好再通过算法转换成具体应用。
程序应用了不规则窗体技术使得窗体比较美观。
单击属相标志可以退出程序。
单击时钟数字将返回到今天。
单击查询控制面板开关将向下拉出查询控制面板。
.关键字关键字关键字关键字农历公历转换及计算器、查询控制面板、
VB6。
多功能电子日历的开发前言电脑已经成为挂在我们嘴角的一句口头禅它已经深入到日常工作和生活的方方面面比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的
工作。
然而虽然现在世界上已经充满了多如牛毛的各种软件但它们依然不能满足用户的各种特殊需要人们还不得不开发适合自己特殊需求的软件。
以前开发Windows下软件是专业人员的工作需要掌握许多专业知识和经过特殊的培训才能胜任。
现在不同了即使你没有接受过严格的程序设计训练使用VisualBasic也一样能够开发出功能强大、适合自己特殊需求的应用程序了。
VisualBasic继承了Basic语言易学易用的特点特别适合于初学者
学习Windows系统编程。
我作为一名中央电大的学生对从事计算机操作和编程工作有着特殊的爱好在工作和学习之余我时常钻研专业课基础理论经
常用VB搞一些小程序在工作中经常有人问到农历和公历的
查询问题。
网页上有一些这方面的介绍但是关于
VB方面的编程资料却比较少。
因此借这次
毕业设计之机我编写了一个可以在
VB6下正常运行的日历、计算器多功能应用程序欢迎各位老师提出批评改进意见。
第一章
VB语言概述一、
VB简介
VB是微软公司出品的一个快速可视化程序开发工具
软件借助微软在操作系统和办公软件的垄断地位
VB在短短的几年内风靡全球。
VB是极有和功能强大的软件主要表现在所见即所得的界面设计基于对象的设计方法极短的软件开发周期较易维护的生成
代码。
美国微软公司在1991年推出
VB1.0至今已经经历了6个版本
VB6.0运行在win9x或winmewin2000winxpwindowsNT等操作系统下是一个32位的应用程序开发工具。
二、
VB语言的基本特点及
VB应用程序的基本持点
VB程序语言具有许多优秀的特性用其设计应用程序时有两个基本特点:可视化设计和事件驱动编程.1、可视化设计同其他的一些可视化程序开发工具一样
VB具有可视化设计的特点微软的Word在刚刚进入市场时同WPS竞争的一个重要的功能砝码就是quot所见即所得quot的字处理功能
VB在
设计应用程序界面时也可以说是quot所见即所得quot.在设计时头脑中所想象的应用程序界面完全可以通过键盘鼠标以及徒手画出来而不是编制大量的
代码然后再编译生成如果需要修改也是利用键盘鼠标和手画而底层的一些程序
代码由
VB自动生成或修改。
VB为用户提供大量的界面元素在
VB中称为控件对象这些控件对象对于熟悉Windows应用程序的用户而言是一点也不陌生如quot窗体quot、quot菜单quot、quot命令按钮quot、quot工具按钮quot、quot检查框quot等等用户只需要利用鼠标、键盘把这些控件对象拖动到适当的位置设置它们的大小、形状、属性等就可以设计出所需的应用程序界面。
2事件驱动编程Windows操作
系统出现以来图形化的用户界面和多任务多进程的应用程序要求程序设计不能是单一性的在使用
VB设计应用程序时必须首先确定应用程序如何同用户进行交互.例如发生鼠标单击、键盘输入等事件时由用户编写的
代码控制这些事件的响应这就是所谓的事件驱动编程。
前面已经谈到在
VB中把窗体以及quot菜单quot、quot按钮quot等控件称为对象如果设计出了应用程序那么与应用程序的用户直接进行交互的就是这些对象组成的图形界面也称为用户接口或用户界面在设计应用
程序时就必须考虑到用户如何与程序进行交户.更进一步甚至程序和程序之间也会有通讯和交户基本上用户是通过鼠标、键盘与应用程序进行交互的这时那些对象就必须对鼠标和键盘操作所引发的事件做出响应.响应就是指执行一段应用程序它不沿预定的路径执行而是在响应不同事件时执行不同的
代码.因此应用程序
代码的路径在每次响应而执行时可能都是不形同的。
三、为何选择
VB作为开发语言除了
VB之外当前能够编制Windows应用程序的可视化编程工具还有很多所针对的编程领域也各有侧重就微软系列的可视化开发工具而言就有VBVisualCVisualJVisualFoxpro等其中VisualFoxpro是针对数据库编程的开发工具VisualC是为专业程序设计员提供的开发工具变量声明和定义严密功能强大灵活必须经过相当的努力才能掌握而
VB不支持虚类、多态性和类的继承相对而言
VB简单易学变量定义不太严密对于非专业程序员而言功能足够强大同VisualC一样也支持
网络编程和数据库编程。
除了微软之外其他公司也在为Windows操作系统平台制作应用程序开发工具例如前Borland的公司出品的
DelphiCBuliderJBulider等其他一些公司出品的针对数据库编程的PowerBuliderPowerDesigner等不可否认这些产品相当出色如果能够熟练掌握将是编程者能力的体现但是必须承认对Windows操作系统最熟悉的还是微软而且微软本身Windows操作系统的源
代码采取不公开的策略使得其他公司出品的产品在实现相同功能时多少都要走些弯路用户在使用这些产品设计应用程序时程序的效率将会受到影响。
在选择所需要的应用程序开发工具时不但要考虑开发工具的功能是否强大还要考虑所花费的时间和效果单纯地追求功能的强大也许会事倍功半。
中央电大陈明主编的《VisualBasic程序设计》是
计算机应用专业采用的一本难得的教材使我受益匪浅。
通过这门
课程的学习我已能用
VB编写简单的程序为了搞好这次毕业设计我决定使用
VB作为编程语言。
四、
VB6.0应用的基本开发方法1、交互式开发计算器面板开关传统的应用程序开发过程可以分为三个明显的步骤:编码、编译和测试。
但是
VB与传统的语言不同它使用交互式方法开发应用程序使三个步骤之间不再有明显的界限。
在大多数语言里如果编写
代码时发生了错误则在开始编译应用程序时该错误就会被编译器捕获。
此时必须查找并改正该错误然后再次进行编译对每一个发现的错误都要重复这样的过程。
VB在编程者输入
代码时便进行解释即时捕获并突出显示大多数语法或拼写错误。
看起来就像一位专家在监视
代码的输入。
除即时捕获错误以外
VB也在输入
代码时部分地编译该
代码。
当准备运行和测试应用程序时只需极短时间即可完成编译。
如果编译器发现了错误、则将错误突出显示于
代码中。
这时可以更正错误并继续编译、而不需从头开始。
由于
VB的交互特性因此在开发应用程序时系统频繁地运行着应用程序。
通过这种方式
代码运行的效果可以在开发时进行测试而不必等到编译完成以后。
第二章用
VB开发多功能日历程序一、本程序运行界面简介编程的主导思想是:先把公、农历的数据用数组查询设置好再通过算法转换成具体应用。
程序的运行界面见图1图1程序应用了不规则窗体技术使得窗体比较美观。
单击属相标志可以退出程序。
单击时钟数字将返回到今天。
单击计算器面板开关将向下拉出计算器面板单击查询控制面板开关将向下拉出查询控制面板见图2。
查询控制面板开关属相标志单击退出本程序图2二、本程序部分控件的设置GzC_clockG_y下面两个为g_mg_dn_y下面两个为n_mn_dPicture1Pt:picturebox控件该时钟是画出来的还有L1L2L3三个line控件三、主程序部分
代码OptionExplicit拖动无标题窗体ConstHTCAPTION2ConstWM_NCLBUTTONDOWNampHA1PrivateDeclareFunctionReleaseCaptureLibquotuser32quotAsLongPrivateDeclareFunctionSendMessageLibquotuser32quotAliasquotSendMessageAquotByValhwndAsLongByValwMsgAsLongByValwParamAsLonglParamAsLongAsLongPicture2cmdtLable4Picture5图中我们看到的一个个小按钮是用photoshop画出来的实际上在每个按钮上面我都加上了透明的lable控件Text1:textbox控件Updown1PrivateDeclareFunctionGetObjectAPILibquotgdi32quotAliasquotGetObjectAquotByValhObjectAsLongByValnCountAsLonglpObjectAsAnyAsLongPrivateDeclareFunctionDeleteObjectLibquotgdi32quotByValhObjectAsLongAsLongPrivateDeclareFunctionSetWindowRgnLibquotuser32quotByValhwndAsLongByValhRgnAsLongByValbRedrawAsBooleanAsLongPrivateDeclareFunctionCreateRectRgnLibquotgdi32quotByValX1AsLongByValY1AsLongByValX2AsLongByValY2AsLongAsLongPrivateDeclareFunctionCombineRgnLibquotgdi32quotByValhDestRgnAsLongByValhSrcRgn1AsLongByValhSrcRgn2AsLongByValnCombineModeAsLongAsLongPrivateDeclareFunctionGetBitmapBitsLibquotgdi32quotByValhBitmapAsLongByValdwCountAsLonglpBitsAsAnyAsLongPrivateTypeBITMAPbmTypeAsLongbmWidthAsLongbmHeightAsLongbmWidthBytesAsLongbmPlanesAsIntegerbmBitsPixelAsIntegerbmBitsAsLongEndTypePrivateConstRGN_OR2DimbmByteAsByte滚动字幕PrivateDeclareFunctionDrawTextLibquotuser32quotAliasquotDrawTextAquotByValhdcAsLongByVallpStrAsStringByValnCountAsLonglpRectAsRECTByValwFormatAsLongAsLongPrivateDeclareFunctionGetTickCountLibquotkernel32quotAsLongConstDT_BOTTOMAsLongampH8ConstDT_CALCRECTAsLongampH400ConstDT_CENTERAsLongampH1ConstDT_EXPANDTABSAsLongampH40ConstDT_EXTERNALLEADINGAsLongampH200ConstDT_LEFTAsLongampH0ConstDT_NOCLIPAsLongampH100ConstDT_NOPREFIXAsLongampH800ConstDT_RIGHTAsLongampH2ConstDT_SINGLELINEAsLongampH20ConstDT_TABSTOPAsLongampH80ConstDT_TOPAsLongampH0ConstDT_VCENTERAsLongampH4ConstDT_WORDBREAKAsLongampH10PrivateTypeRECTLeftAsLongTopAsLongRightAsLongBottomAsLongEndTypeConstScrollTextAsStringquot1901-2049quotampvbCrLfamp_quot多功能电子日历quotDimEndingFlagAsBooleanjSAsIntegerDimeAsStringDimfAsStringDimgAsDoubleDimS_memAsDoubleDimopAsStringDimchkAsIntegerConstPi3.14PrivateConstSWP_NOMOVE2PrivateConstSWP_NOSIZE1PrivateConstFLAGSSWP_NOMOVEOrSWP_NOSIZEPrivateConstHWND_TOPMOST-1PrivateConstHWND_NOTOPMOST-2DimflAgeAsBooleancolor_indexAsIntegertiAoAsBooleanjiSuanAsBooleanDims_mem_BAsBooleantipAsIntegerziShiAsString数字按下、松开PrivateSubcmdNum_MouseDownIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdNumIndexEndSubPrivateSubcmdNum_MouseUpIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdNumIndexEndSub角度、弧度PrivateSubcmdOp_1_ClickIndexAsIntegerMPl.PlaySelectCaseIndexCase0Ifg1ThenIfopquotquotTheneStrVale180/PitxtDisp.TexteElsefStrVale180/PitxtDisp.TextfEndIfchk1gPi/180EndIfShowNumARGPtwPw1319Case1Ifgltgt1ThenIfopquotquotTheneStrValePi/180txtDisp.TexteElsefStrValePi/180txtDisp.TextfEndIfchk1g1EndIfShowNumARGPtwPw1320Case2g1ShowNumARGPtwPw1321EndSelectEndSubPrivateSubcmdOp_1_MouseUpIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdOp_1IndexEndSubPrivateSubcmdOp_1_MouseDownIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdOp_1IndexEndSub单一功能键按下、松开PrivateSubcmdops_MouseDownIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdOpsIndexEndSubPrivateSubcmdops_MouseUpIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdOpsIndexEndSub单一功能键按下、松开PrivateSubcmdOps_ClickIndexAsIntegerDimsumAsDoubleiAsIntegerOnErrorGoToeh1MPl.PlaySelectCaseIndexCase0eStrSqrValeShowNumFunPtwPw1310Ji_suanCase1Ifeltgt0Thene-ValtxtDispElsee0EndIfJi_suanCase2eStrSinValegShowNumFunPtwPw13Index-1Ji_suanCase3eStrCosValegShowNumFunPtwPw13Index-1Ji_suanCase4eStrTanValegShowNumFunPtwPw13Index-1Ji_suanCase5eStrAtnValeShowNumFunPtwPw13Index-1Ji_suanCase6eStr1/SinValegShowNumFunPtwPw13Index-1Ji_suanCase7eStr1/CosValegShowNumFunPtwPw13Index-1Ji_suanCase8eStrExpValeShowNumFunPtwPw13Index-1Ji_suanCase9eStrLogValeShowNumFunPtwPw13Index-1Ji_suanCase10RandomizeIfopquotquotTheneStr9999999999RndtxtDisp.TextefquotquotElsefStr99999999RndtxtDisp.TextfEndIfShowNumFunPtwPw13Index-1Case11eStr1/ValeJi_suan第11-23种情况略Case24Ifs_mem_BFalseThenIfopquotquotTheneStrS_memtxtDisp.TextefquotquotElsefStrS_memtxtDisp.TextfEndIfs_mem_BTrueElseS_mem0s_mem_BFalseEndIfEndSelectExitSubeh1:txtDisp.Textquot-E-quotequotquotfquotquotopquotquotEndSubPrivateSubcmdAC_ClickMPl.Playg1ShowNumFunPtwPw231ShowNumARGPtwPw1320equotquotfquotquotopquotquottxtDisp.Textquot0quotEndSubPrivateSubcmdAC_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdACEndSubPrivateSubcmdAC_MouseUpButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdACEndSubPrivateSubcmdEq_ClickMPl.PlayIfopquotquotTheneStr-ValetxtDisp.TexteElsefStr-ValetxtDisp.TextfEndIfchk1EndSubPrivateSubcmdEq_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdEqEndSubPrivateSubcmdEq_MouseUpButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdEqEndSubPrivateSubcmdNum_ClickIndexAsIntegerOnErrorGoToeh2MPl.PlayIfchk1Thenequotquotfquotquotopquotquotchk0EndIfIfopquotquotTheneeampTrimStrIndextxtDisp.TexteElseffampTrimStrIndextxtDisp.TextfEndIfExitSubeh2:txtDisp.Textquot-E-quotequotquotfquotquotopquotquotEndSubPrivateSubcmdOp_MouseDownIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdOpIndexEndSubPrivateSubcmdOp_MouseUpIndexAsIntegerButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdOpIndexEndSubPrivateSubcmdOp_ClickIndexAsIntegerOnErrorGoToeh3op_SubtxtDisp.Texteopquotquotchk0SelectCaseIndexCase0opquotquotCase1opquot-quotCase2opquotquotCase3opquot/quotCase4opquotquotEndSelectExitSubeh3:txtDisp.Textquot-E-quotequotquotfquotquotopquotquotEndSubPrivateSubcmdPi_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdPiEndSubPrivateSubcmdPi_MouseUpButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdPiEndSubPrivateSubcmdPi_ClickMPl.PlayIfopquotquotThenequot3.141592654quottxtDisp.TexteElsefquot3.141592654quottxtDisp.TextfEndIfEndSubPrivateSubcmdPM_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdPMEndSubPrivateSubcmdPM_MouseUpButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdPMEndSubPrivateSubcmdPM_ClickOnErrorGoToeh1op_SubtxtDisp.Texteopquotquotchk1ExitSubeh1:txtDisp.Textquot-E-quotequotquotfquotquotopquotquotEndSubPrivateSubcmdPt_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P8cmdPtEndSubPrivateSubcmdPt_MouseUpButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleShow_bPicture5P9cmdPtEndSubPrivateSubcmdPt_ClickMPl.PlayIfopquotquotTheneeampquot.quottxtDisp.TexteElseffampquot.quottxtDisp.TextfEndIfEndSubPrivateSubcmdT_Click显示查询面板IftiAoThenTimer4.EnabledFalseTimer3.EnabledTrueElseTimer4.EnabledTrueTimer3.EnabledFalseEndIfLabel4.EnabledFalsePicture4.VisibleTruePicture5.VisibleFalseEndSubPrivateSubLabel4_ClickPt.VisibleTruecmdT.EnabledFalsePicture5.VisibleTruePicture4.VisibleFalseIfjiSuanThenTimer6.EnabledTrueTimer5.EnabledFalseTimer1.EnabledTrueTimer8.EnabledFalseElseTimer6.EnabledFalseTimer5.EnabledTrueTimer8.EnabledTrueTimer1.EnabledFalseEndIfPicture5.SetFocusEndSub单击返回今天PrivateSubC_clock_ClickText1.TextYearDateText2.TextMonthDateText3.TextDayDatetxt_SubdisPlayDateEndSubPrivateSubForm_ActivateRunMainpicScrollEndSubPrivateSubForm_LoadDimtAsSinglertnForm1.Height2715Form1.Width5400rtnSetWindowPosForm1.hwnd-10000FLAGStip1tTimerIfMe.Pictureltgt0ThenCallSetAutoRgnMetiAoFalsejiSuanFalse-----------------------------------------------Picture4.VisibleFalsePicture5.VisibleFalse---------------------------------------计算器变量初始化s_mem_BFalseS_mem0chk0equotquotfquotquotopquotquottxtDisp.Textquot0quotg1ShowNumFunPtwPw231ShowNumARGPtwPw1320-----------------------------------------fhSec30color_index1jS0picScroll.ForeColorvbRedpicScroll.FontSize8Picture2.VisibleFalsecolor11flAgeFalseshxingText1.TextYearDateText2.TextMonthDateText3.TextDayDatetxt_SubdisPlayDateEndSubPrivateSubForm_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleIfButton1ThenDimReturnValAsLongxReleaseCaptureReturnValSendMessagehwndWM_NCLBUTTONDOWNHTCAPTION0EndIfEndSubPrivateSubGz_ClickEndEndSubPrivateSubpicScroll_ClickPicture2.VisibleTrueRunMainPicture2EndSubPrivateSubPicture1_MouseDownButtonAsIntegerShiftAsIntegerxAsSingleyAsSingleIfButton1ThenDimReturnValAsLongxReleaseCaptureReturnValSendMessagehwndWM_NCLBUTTONDOWNHTCAPTION0EndIfEndSubPrivateSubPicture2_ClickPicture2.VisibleFalseRunMainpicScrollEndSubPrivateSubPicture4_ClickTimer3.EnabledTrueTimer4.EnabledFalseEndSubPrivateSubPicture5_ClickPt.VisibleFalseTimer6.EnabledTrueTimer5.EnabledFalseTimer1.EnabledTrueTimer8.EnabledFalseEndSubPrivateSubPicture5_KeyPressKeyAsciiAsIntegerSelectCaseKeyAsciiCase13cmdPM_ClickCase484950557cmdNum_ClickKeyAscii-48Case46cmdPt_ClickCase42cmdOp_Click2Case43cmdOp_Click0Case45cmdOp_Click1Case47cmdOp_Click3CaseElseKeyAscii0EndSelectEndSubPrivateSubPicture8_ClickPicture8.VisibleFalseEndSubPrivateSubPt_ClickTimer6.EnabledTrueTimer5.EnabledFalsePt.VisibleFal.