日付と時刻の選択コントロールを作成する方法
このトピックでは、日付と時刻の選択 (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);
}
関連トピック