날짜 및 시간 선택기 컨트롤을 만드는 방법

이 항목에서는 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);
}

날짜 및 시간 선택기 컨트롤 사용

날짜 및 시간 선택기 컨트롤 참조

날짜 및 시간 선택기