- 公开视频 -> 链接点击跳转公开课程
- 博客首页 -> e链接点击跳转博客主页
目录
日期时间控件(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;}