DateTimePicker的类是这样的:
class CDTPickerImpl : public CWindowImpl<CDTPickerImpl>
{
public:
DECLARE_WND_SUPERCLASS(TEXT("DATETIMEPICKER"), DATETIMEPICK_CLASS) BEGIN_MSG_MAP(CDTPickerImpl)
END_MSG_MAP() CDTPickerImpl();
virtual ~CDTPickerImpl();
}; 
然后在另一个窗口中创建:
CAxWindow                   m_wndDTPContainer;
void CCNRToolbarImpl::AddDTPicker(RECT& rect)
{
    AtlAxWinInit();
    CComPtr<IAxWinHostWindow>           spHost;
    CComPtr<IConnectionPointContainer>  spConnectionContainer;
//    CComWMPEventDispatch                *pEventListener = NULL;
    CComPtr<IWMPEvents>                 spEventListener;
    HRESULT                             hr;
//    RECT                                rcClient;

    m_dwAdviseCookie = 0;

m_wndDTPContainer.Create(m_hWnd, rect, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN, NULL);
    
    hr = m_wndDTPContainer.QueryHost(&spHost);    hr = spHost->CreateControl(CComBSTR(_T("{20dd1b9e-87c4-11d1-8be3-0000F8754da1}")), m_wndDTPContainer, 0);

获得DateTimePicker的值这样做的:
SYSTEMTIME st;
if (GDT_VALID == DateTime_GetSystemtime(m_wndDTPContainer.m_hWnd,&st))
{
sprintf(buff,"%d-%d-%d",st.wYear,st.wMonth,st.wDay);
//最后得到的值不正确,
}请各位帮忙分析一下

解决方案 »

  1.   

    Value属性可以得到Variant 形式的时间值
      

  2.   

    to Semigod:
    请看一下我创建DateTimePicker时的代码,是先生成了一个Host窗口,然后通过CreateControl生成的DTPicker控件,所以我不知道怎么得到DateTimePicker的句柄,如果能得到句柄的话,我这样做就应该能得到正确的值了。所以我认为解决方法是要么得到DateTimePicker的句柄,要么用另外一种方法创建DateTimePicker
      

  3.   

    to Semigod:已经给你发了,帮我看看,多谢!
      

  4.   

    to Semigod:老兄,你的email地址有问题吧!!!!!晕死我了。