calendar 控件位于 msacal70.ocx 中(在 /windows/system 目录中; 在帮助文件中错误的描述为 msacal.ocx)。帮助文件名为 msacal70.hlp。该控件提供了在你的应用程序中包含日历的能力。该控件的一个显而易见的用处是当用户在日期型字段上右击鼠标时显示一个日历让用户选择一个日期值。
calendar 控件中的方法主要用于编程地控制日期,包括 nextday,nextweek,nextmonth,previousday,previousweek 和 previousmonth。当然也可以提供按钮或其它方法来调用这些方法,但由于用户可以在日历中单击各种控件来修改日期,所以我没有在这方面作过多的探索。
除 click,dblclick 和 keypress 这样的常用事件,calendar 控件还有 afterupdate,beforeupdate,newmonth 和 newyear 事件,这些事件允许你在用户改变了某些东西后,执行一些可能需要的特殊的处理。我想你会用到的最常用的事件是 dblclick,该事件可用于当用户选择了一个日期后,释放或隐藏 calendar 控件.
属性
calendar 控件的属性比它的方法和事件更有趣。你可能想设置一些属性,如颜色(backcolor,dayfontcolor,gridfontcolor,gridlinescolor,titlefontcolor),字体 (dayfont,gridfont,and titlefont),和控件的其它初始显示属性(daylength,firstday,gridcelleffect,monthlength,showdateselectors,showdays,showhorizontalgrid,showtitle,and showverticalgrid),这些属性可以通过右击菜单从 calendar 控件属性表中进行访问。value 属性包含在日历控件中选定的日期,day,month 和 year 属性包含日期的相关部分的值。
通常,你会设置控件的 value 来指定一个日期(例如,在控件的 init 事件中),该日期是被高亮显示的默认日期,在用户选定一个日期后,可以从 value 中读取用户选择的日期值。
示例
我创建了一个包含日历控件和一些按钮的容器类(源代码中的 activex.vcx 类库中的 sfcalendaron 类) 和一个 sfdatespinner 类(源代码中的 controls.vcx 类库中) ,适用于在用户从右击菜单选择"日历"时实例化 sfcalendar。
sfdatespinner 类是一个容器类,拥有一个文本框和数码器(只有上下键头是可访问的)。数码器用于增加和减少文本框中的日期值,文本框的 keypress 方法中的代码模仿快速填充日期按键。当用户在文本框上右击时,调用 shortcutmenu 方法来显示一个快捷菜单(采用硬编码并封闭于控件的该方法中)。如果用户从菜单中选择了 "日历",会调用 showcalendar 方法。该方法从 ccalendarclass 属性(该属性的默认值是 sfcalendar )是指定的类中,实例化一个对象。newobj.prg 用于确保存该类所在的类库是打开的。
sfcalendar 控件接收一个对象参数,因此它可以在对象释放前修改对象的值为用户选择值。当用户双击一个日期或选择 保存 或 退出 按钮时,该对象被释放。
源代码中的 calendar 表单包括一个 sfdatespinner 对象,因此你可以试一试这些类。
商业源码热门下载www.html.org.cn
新闻热点
疑难解答