Lire en anglais

Partager via


Comment créer un contrôle sélecteur de date et d’heure

Cette rubrique montre comment créer dynamiquement un contrôle sélecteur de date et d’heure (DTP). L’exemple de code C++ associé crée un contrôle DTP dans une boîte de dialogue sans mode. Il utilise le style DTS_SHOWNONE pour permettre à l’utilisateur de simuler la désactivation de la date dans le contrôle.

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Programmation de l’interface utilisateur Windows

Instructions

Étape 1 :

Inscrivez la classe window en appelant la fonction InitCommonControlsEx et en spécifiant le bit ICC_DATE_CLASSES dans la structure INITCOMMONCONTROLSEX associée.

 INITCOMMONCONTROLSEX icex;

 icex.dwSize = sizeof(icex);
 icex.dwICC = ICC_DATE_CLASSES;

 InitCommonControlsEx(&icex);

Étape 2 :

Pour créer le contrôle DTP, utilisez la fonction CreateWindowEx . Spécifiez DATETIMEPICK_CLASS comme classe de fenêtre, puis passez le handle à la boîte de dialogue parente.

L’exemple de code C++ suivant utilise la fonction CreateDialog pour créer une boîte de dialogue sans mode. Il appelle ensuite CreateWindowEx pour créer le contrôle 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);

Exemple complet

//  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);
}

Utilisation des contrôles sélecteur de date et d’heure

Informations de référence sur le contrôle du sélecteur de date et d’heure

Sélecteur de date et d’heure