Windows图形界面(GUI)-DLG-C/C++ - 日期时间控件(DateTimePicker)

目录

日期时间控件(DateTimePicker)

使用场景

消息处理

示例代码


日期时间控件(DateTimePicker)

使用场景

  • 表单中需要用户输入日期或时间的地方,如旅行预订、预约系统等。
  • 需要限定输入范围的日期或时间,如生日输入、事件计划等。
  • 在软件中需要记录或显示时间戳的功能,如日志记录、历史事件查看等。
消息处理

  • DTN_DATETIMECHANGE:当控件中的日期和时间发生变化时,会发送此通知消息。
  • DTN_CLOSEUP:当日期时间选择控件的下拉列表关闭时,会发送此通知消息。
示例代码
	case WM_INITDIALOG:
	{
		// 初始环境
		INITCOMMONCONTROLSEX initComm = { 0 };
		initComm.dwSize = sizeof(INITCOMMONCONTROLSEX);
		initComm.dwICC = ICC_WIN95_CLASSES;
		InitCommonControlsEx(&initComm);
		
		// 初始控件
		HWND hDataTime = GetDlgItem(hwnd, IDC_DATETIMEPICKER2);

		// 设置时间
		SYSTEMTIME sysTime = { 0 };
		sysTime.wYear = 2024;
		sysTime.wMonth = 1;
		sysTime.wDay = 1;
		DateTime_SetSystemtime(hDataTime, GDT_VALID, &sysTime);

		// 设置区间
		SYSTEMTIME sysTimeRange[2] = { 0 };
		
		sysTimeRange[0].wYear = 2020;
		sysTimeRange[0].wMonth = 1;
		sysTimeRange[0].wDay = 1;
		
		sysTimeRange[1].wYear = 2030;
		sysTimeRange[1].wMonth = 1;
		sysTimeRange[1].wDay = 1;
		
		DateTime_SetRange(hDataTime, GDTR_MIN | GDTR_MAX, &sysTimeRange);

		return TRUE;	
	}

	case WM_NOTIFY:
	{
		NMHDR* info = (NMHDR*)lParam;

		if (info->idFrom == IDC_DATETIMEPICKER2 && info->code == DTN_CLOSEUP)
		{
			SYSTEMTIME sysTime = { 0 };
			DateTime_GetSystemtime(info->hwndFrom, &sysTime);
			OutputDebugString(L"DTN_CLOSEUP");
		}

		return TRUE;
	}

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值