CVI通过ActiveX使用DTPicker控件获取选择的日期

CVI通过ActiveX使用DTPicker控件获取选择的日期

最近一个项目需要用到选择使用的时间,使用CVI LabView编辑软件。如果不能使用DTPicker,可以先下载安装MSCOMCT2.OCX文件。
方法一:下载运行Microsoft Office mscomct2 控件包.exe自动安装。
方法二:下载控件MSCOMCT2.OCX,手动安装。
手动安装:
1、将下载的MSCOMCT2.OCX放在C:\Windows\SysWOW64\(我的电脑64位,32位的放在C:\Windows\System32);
2、使用管理员权限(很重要)打开命令提示符,输入regsvr32 c:\Windows\SysWOW64\Mscomct2.ocx进行注册。
创建控件:
在这里插入图片描述
在这里插入图片描述
代码如下:

CAObjHandle obj1, obj2;
char		strTimeStart[50],finalTime[50]void getDTPickerTimestamp (int panel, CAObjHandle objHandle, char *timestamp)
{
	VARIANT     stringvariant; 
	char        *stringval[1];
	int  		i = 0;char str[20] = "";
	
	MSComCtl2_IDTPickerGetValue (objHandle, NULL, &stringvariant);//获取选择的日期
	CA_VariantConvertToType (&stringvariant, CAVT_CSTRING, stringval);//格式转换
	strcpy (timestamp, stringval[0]);
}
//通过面板及控件名字得到控件句柄
GetObjHandleFromActiveXCtrl (panel, PANEL_DTPICKER_TIMESTART, &obj1);  
getDTPickerTimestamp (panel, obj1, strTimeStart);

最后得到的时间:2020/9/5 、2020/10/1 、2020/9/10 、2020/12/12,如果需要转换成2020/09/05 、2020/10/01、2020/09/10。(供参考)
代码如下:

void VertDateFormat (char *timeIn, char *timeOut)
{
	int i = 0, j1 = 0, j2 = 0, j3 = 0, b = 0;
	char str1[10] = "", str2[10] = "", str3[10] = "", str22[10] = "", str33[10] = "";
	while (timeIn [i] != '\0')
	{
		if (timeIn [i] != '/')
		{
			if (b==0)
				str1[j1++] = timeIn [i];
			if (b==1)
				str2[j2++] = timeIn [i];
			if (b==2)
				str3[j3++] = timeIn [i];
		}
		else{++b;}
		i++;
	}
	if (strlen(str2)<2){sprintf(str22, "0%s", str2);}
	else{strcpy (str22, str2);}
	if (strlen(str3)<2){sprintf (str33, "0%s", str3);}
	else{strcpy (str33, str3);}
	sprintf (timeOut, "%s/%s/%s", str1, str22,str33);
}
VertDateFormat (strTimeStart, finalTime);

请多指教!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值