应用BCGControlBar在工具栏上添加datetimepicker控件

步骤:

1、在工具栏上定义菜单比如ID_DATE,ID_TIME

2、在CMainFrm中修改

(1)

LRESULT CMainFrame::OnToolbarReset(WPARAM wp,LPARAM)
{
    //----Example----//

    UINT uiToolBarId = (UINT) wp;

    switch (uiToolBarId)
    {
    case IDR_MAINFRAME:
        {
            CBCGPToolbarDateTimeCtrl dateButton (ID_DATE,
                CImageHash::GetImageOfCommand (ID_DATE, FALSE));
            m_wndToolBar.ReplaceButton (ID_DATE, dateButton);

            CBCGPToolbarDateTimeCtrl timeButton (ID_TIME,
                CImageHash::GetImageOfCommand (ID_TIME, FALSE),
                DTS_TIMEFORMAT | DTS_UPDOWN);
            m_wndToolBar.ReplaceButton (ID_TIME, timeButton);
        }
        break;
    }

    //----Example----//

    return 0;
}

 

(2)

void CMainFrame::OnViewCustomize()
{
    //------------------------------------
    // Create a customize toolbars dialog:
    //------------------------------------
    CBCGPToolbarCustomize* pDlgCust = new CBCGPToolbarCustomize (this,
        TRUE /* Automatic menus scaning */
        );

    //----Example----//

    CBCGPToolbarDateTimeCtrl dateButton (ID_DATE,
        CImageHash::GetImageOfCommand (ID_DATE, FALSE));
    pDlgCust->ReplaceButton (ID_DATE, dateButton);

    CBCGPToolbarDateTimeCtrl timeButton (ID_TIME,
        CImageHash::GetImageOfCommand (ID_TIME, FALSE),
        DTS_TIMEFORMAT | DTS_UPDOWN);
    pDlgCust->ReplaceButton (ID_TIME, timeButton);

    //----Example----//

    pDlgCust->Create ();
}

 

3、响应菜单

添加OnDate、OnTime的菜单响应消息

实现如下:

void CMainFrame::OnDate()
{
    SYSTEMTIME t;
    CString str;
    CBCGPToolbarDateTimeCtrl::GetTimeAll(ID_DATE,&t);
    CString sDate,sTime;
    COleDateTime sd(t);
    sDate=sd.Format("%y-%m-%d");
    CBCGPToolbarDateTimeCtrl::GetTimeAll(ID_TIME,&t);
    COleDateTime st(t);
    sTime=st.Format("%H:%M:%S");
    str.Format("%s %s",sDate,sTime);
    _StartTime.ParseDateTime(str);
}

void CMainFrame::OnTime()
{
    SYSTEMTIME t;
    CString str;
    CBCGPToolbarDateTimeCtrl::GetTimeAll(ID_DATE,&t);
    CString sDate,sTime;
    COleDateTime sd(t);
    sDate=sd.Format("%y-%m-%d");
    CBCGPToolbarDateTimeCtrl::GetTimeAll(ID_TIME,&t);
    COleDateTime st(t);
    sTime=st.Format("%H:%M:%S");
    str.Format("%s %s",sDate,sTime);
    _StartTime.ParseDateTime(str);
}

posted on 2011-01-31 15:22  carekee  阅读(600)  评论(0)    收藏  举报