CDateTimeCtrl setzen

hphi

Mitglied
Hallo liebes Forum,

ich habe ein CListCtrl mit verschiedenartigen editierbaren Feldern programmiert.
Unter anderen besteht auch die Möglichkeit Zeiten zu editieren. Dazu wird ein
CDateTimeCtrl dynamisch erzeugt.

Das funktioniert auch schon recht gut. Leider habe ich es noch nicht geschafft in der Liste
das Datetime - Feld zu setzen. Es wird immer die aktuelle Zeit angezeigt, wenn man das
CDateTimeCtrl - Feld anklickt.

Ich verwende folgenden Code, um das statische Datetime - Feld anzulegen:

Code:
BOOL CBpInPlaceDateTimeCtrl::ShowDatetimeCtrl(DWORD dwStyle,   
const RECT& rect, 
CWnd* pParentWnd, 
UINT nResourceID, 
int nRowIndex, 
int nColumnIndex,
CString& csDatetime)
{
	m_nRowIndex     = nRowIndex;
	m_nColumnIndex  = nColumnIndex;

	dwStyle = DTS_RIGHTALIGN | DTS_UPDOWN | 0x8;

	if ( NULL == m_pInPlaceDatetimeCtrl->m_hWnd ) 
	{
		BOOL bRet = m_pInPlaceDatetimeCtrl->Create(dwStyle, rect, pParentWnd, nResourceID); 
		if ( bRet )
		{
		}
		return bRet;
	}

	return TRUE;

}

ich bin über jede Hilfe dankbar.

Ein ähnliches Problem habe ich auch mit Checkboxen.

Viele Grüße

hphi
 
Zuletzt bearbeitet:
Hi,

um das initiale Datum eines CDateTimeCtrls zu setzen, machst du z.B. folgendes:

Mit dem Code setzt du das Datum auf den 1.1.2007.

Code:
    SYSTEMTIME st;
    memset(&st,0,sizeof(SYSTEMTIME));
    st.wDay = 1; 
    st.wMonth =1;
    st.wYear = 2007;
    // m_cDT ist ein CDateTimeCtrl Objekt
    m_cDT.SendMessage(DTM_SETSYSTEMTIME,GDT_VALID,(LPARAM)&st);

Tschö,

Peter
 
Danke für die Antwort.

Das Problem war, dass ich im CDatetimeCtrl auch Jahr, Monat und Tag korrekt setzen
muss. Dann geht es.

Vielen Dank

Grüsse

hphi
 

Neue Beiträge

Zurück