当前位置:   article > 正文

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

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

目录

日期时间控件(DateTimePicker)

使用场景

消息处理

示例代码


日期时间控件(DateTimePicker)

使用场景

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

  • DTN_DATETIMECHANGE:当控件中的日期和时间发生变化时,会发送此通知消息。
  • DTN_CLOSEUP:当日期时间选择控件的下拉列表关闭时,会发送此通知消息。
示例代码
  1. case WM_INITDIALOG:
  2. {
  3. // 初始环境
  4. INITCOMMONCONTROLSEX initComm = { 0 };
  5. initComm.dwSize = sizeof(INITCOMMONCONTROLSEX);
  6. initComm.dwICC = ICC_WIN95_CLASSES;
  7. InitCommonControlsEx(&initComm);
  8. // 初始控件
  9. HWND hDataTime = GetDlgItem(hwnd, IDC_DATETIMEPICKER2);
  10. // 设置时间
  11. SYSTEMTIME sysTime = { 0 };
  12. sysTime.wYear = 2024;
  13. sysTime.wMonth = 1;
  14. sysTime.wDay = 1;
  15. DateTime_SetSystemtime(hDataTime, GDT_VALID, &sysTime);
  16. // 设置区间
  17. SYSTEMTIME sysTimeRange[2] = { 0 };
  18. sysTimeRange[0].wYear = 2020;
  19. sysTimeRange[0].wMonth = 1;
  20. sysTimeRange[0].wDay = 1;
  21. sysTimeRange[1].wYear = 2030;
  22. sysTimeRange[1].wMonth = 1;
  23. sysTimeRange[1].wDay = 1;
  24. DateTime_SetRange(hDataTime, GDTR_MIN | GDTR_MAX, &sysTimeRange);
  25. return TRUE;
  26. }
  27. case WM_NOTIFY:
  28. {
  29. NMHDR* info = (NMHDR*)lParam;
  30. if (info->idFrom == IDC_DATETIMEPICKER2 && info->code == DTN_CLOSEUP)
  31. {
  32. SYSTEMTIME sysTime = { 0 };
  33. DateTime_GetSystemtime(info->hwndFrom, &sysTime);
  34. OutputDebugString(L"DTN_CLOSEUP");
  35. }
  36. return TRUE;
  37. }

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号