次の方法で共有


日付と時刻の選択コントロールを作成する方法

このトピックでは、日付と時刻の選択 (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);
}

日付と時刻の選択コントロールの使用

日付と時刻の選択コントロール リファレンス

日付と時刻の選択