dcsimg
 

Use the Date/Time Picker common control (IE3+)

Friday Sep 25th 1998 by Tim Gilman

Use the Date/Time Picker common control (IE3+)

NOTE: You must also have the new COMCTL32.DLL (version 4.7 or later). This is installed with Internet Explorer 3 and will come standard with the new Windows 98. So if you are using VC++ 5 then you probably already have this DLL.

The API support is available in VC++ 5.0. Otherwise, you need to download the ActiveX SDK from the MS website. To use the date/time picker, do the following:

Put the following in your app's InitInstance:
        INITCOMMONCONTROLSEX icc;
        icc.dwSize = sizeof(INITCOMMONCONTROLSEX);
        icc.dwICC = ICC_DATE_CLASSES;
        InitCommonControlsEx(&icc);

Insert a custom control in your dialog where you want the date or time picker. For the class name, enter "SysDateTimePick32". For the style, see commctrl.h and search for the DTS_* style and enter the desired style (usually either DTS_SHORTDATEFORMAT or DTS_TIMEFORMAT). Be sure to make the custom control visible and have a tabstop.

You can always use CreateEx() to create them manually.

You can DDX the control to a SYSTEMTIME structure with the following code:

void AFXAPI DDX_DateTime(CDataExchange *pDX, int nIDC, 
        SYSTEMTIME &SysTime)
{
        HWND hWnd = pDX->m_pDlgWnd->GetDlgItem(nIDC)->GetSafeHwnd();
        ASSERT (hWnd != NULL);

        if (pDX->m_bSaveAndValidate)
        {
                ::SendMessage(hWnd, DTM_GETSYSTEMTIME, 0, 
                        (LPARAM)&SysTime);
        }
        else // initializing
        {
                ::SendMessage(hWnd, DTM_SETSYSTEMTIME, GDT_VALID,
                        (LPARAM)&SysTime);
        }
}

void CCtrlTestDlg::DoDataExchange(CDataExchange* pDX)
{
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CCtrlTestDlg)
        //}}AFX_DATA_MAP
        // m_Date and m_Time  are SYSTEMTIME structures
        DDX_DateTime(pDX, IDC_DATE, m_Date); 
        DDX_DateTime(pDX, IDC_TIME, m_Time);
}

Home
Mobile Site | Full Site
Copyright 2018 © QuinStreet Inc. All Rights Reserved