1、如何添加日历控件
(1)在需要添加日历控件的界面,点击鼠标右键,选择“ActiveX…”,如图3-1所示。然后进入选择外部插件的界面,如图3-2所示。
图3-1 添加外部控件
图3-2 选择日历控件
(2)在图3-2中找到Microsoft Date and Time Picker Control 6.0(SP6),然后界面上就会出现你需要的控件。
有时候会发现自己的电脑中没有该插件,此时需要安装该驱动。在网上下载MSCOMCT2.OCX驱动,然后解压复制到C:\windows\system32\文件下。然后以管理员身份启动cmd.exe,对驱动进行安装。输入命令:regsvr32 c:\Windows\system32\MSCOMCT2.OCX,回车就会提示安装完成。如果出现安装失败,最大的可能是没有以管理员身份启动cmd.exe。
(3)在面板上,选择该日历控件,右键选择生成驱动,如图3-3所示。并对生产的驱动进行路径及其他设置。如图3-4所示。
图3-3 生产日历控件驱动
(4)图3-4所示,勾选“Add .fp File To Project”,并点击“Browse..”按钮选择键.fp文件存放的位置。点击“Next”进入其他更多选项设置,此处直接选择“Next”,然后系统会自动生成驱动文件,并加载到工程文件中。如图3-5所示,在Instrument Files中会出现生成的驱动文件mscomct2.fp。
图3-4 驱动参数设置
图3-5 文件列表
2、日历控件的操作
(1)第一步,获取日历控件的句柄。采用函数GetObjHandleFromActiveXCtrl获取所创建ActiveX对象句柄,其函数形式如下:
int GetObjHandleFromActiveXCtrl (int panelHandle, int controlID, CAObjHandle *objectHandle);
int panelHandle —— 控件所放置的界面句柄;
int controlID —— 控件的ID编号
CAObjHandle *objectHandle —— 返回控件的句柄
实际代码如下:
CAObjHandle objhandle1;//初始化控件句柄变量
GetObjHandleFromActiveXCtrl(panel,TABPANEL_DTPICKER,&objhandle1);//获取外部控件的句柄
(2)第二步,设置控件的显示格式,采用MSComCtl2_IDTPickerSetFormat函数进行操作,函数形式如下:
HRESULT CVIFUNC MSComCtl2_IDTPickerSetFormat(CAObjHandle objectHandle,ERRORINFO *errorinfo, enum MSComCtl2Enum_FormatConstants penumFormat);
penumFormat: 为枚举类型。有四种预定义格式。dtpLong为长日期格式,如“2006年5月14日”;dtpShort为短日期格式,如“2003-5-15”;dtpTime为时间格式,如“11:20:00”;dtpCustom为用户自定义格式。
(3)第三步,读取信息。
VARIANT pvday;
VARIANT pvmonth;
VARIANT pvyear;
//获取当前日期
MSComCtl2_IDTPickerGetDay(objhandle1,NULL,&pvday);
//获取当前月份
MSComCtl2_IDTPickerGetMonth(objhandle1,NULL,&pvmonth);
//获取当前年份
MSComCtl2_IDTPickerGetYear(objhandle1,NULL,&pvyear);
注意,该处的年月日的参数格式是VARIANT格式,需要用格式转换函数得到我们需要的参数格式。如下可以将VARIANT格式转化为short型。
CA_VariantGetShort(&pvyear,&syear);
CA_VariantGetShort(&pvmonth,&smonth);
CA_VariantGetShort(&pvday,&sday);
作者: sharcky, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-221763.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论