描述:
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:
semigod@wlzq.cn