如何创建日期和时间选取器控件
本主题演示如何动态创建日期和时间选取器 (DTP) 控件。 随附的 C++ 代码示例在无模式对话框中创建 DTP 控件。 使用 DTS_SHOWNONE 样式使用户能够模拟控件中日期的停用。
需要了解的事项
技术
先决条件
- C/C++
- Windows 用户界面编程
说明
步骤 1:
通过调用 InitCommonControlsEx 函数来注册窗口类,并在随附的 INITCOMMONCONTROLSEX 结构中指定 ICC_DATE_CLASSES 位。
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
步骤 2:
若要创建 DTP 控件,请使用 CreateWindowEx 函数。 将 DATETIMEPICK_CLASS 指定为窗口类,并将句柄传递给父对话框。
以下 C++ 代码示例使用 CreateDialog 函数创建无模式对话框。 然后调用 CreateWindowEx 创建 DTP 控件。
hwndDlg = CreateDialog (g_hinst,
MAKEINTRESOURCE(IDD_DIALOG1),
hwndMain,
DlgProc);
if(hwndDlg)
hwndDP = CreateWindowEx(0,
DATETIMEPICK_CLASS,
TEXT("DateTime"),
WS_BORDER|WS_CHILD|WS_VISIBLE|DTS_SHOWNONE,
20,50,220,20,
hwndDlg,
NULL,
g_hinst,
NULL);
完整示例
// CreateDatePick creates a DTP control within a dialog box.
// Returns the handle to the new DTP control if successful, or NULL
// otherwise.
//
// hwndMain - The handle to the main window.
// g_hinst - global handle to the program instance.
HWND WINAPI CreateDatePick(HWND hwndMain)
{
HWND hwndDP = NULL;
HWND hwndDlg = NULL;
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(icex);
icex.dwICC = ICC_DATE_CLASSES;
InitCommonControlsEx(&icex);
hwndDlg = CreateDialog (g_hinst,
MAKEINTRESOURCE(IDD_DIALOG1),
hwndMain,
DlgProc);
if(hwndDlg)
hwndDP = CreateWindowEx(0,
DATETIMEPICK_CLASS,
TEXT("DateTime"),
WS_BORDER|WS_CHILD|WS_VISIBLE|DTS_SHOWNONE,
20,50,220,20,
hwndDlg,
NULL,
g_hinst,
NULL);
return (hwndDP);
}
相关主题