DoDataExchange für eigenes Ctrl
-
Hallo
ich habe mir ein Ctrl aus nem Cwnd gebaut.
Es besitzt static, edit, und ne Checkbox/Button.Da ich viele dieser Ctrls hab wollte ich in meinem View mit DoDataExchange einfacher überprüfen was in dem EditFeld steht.
Welche Funktionen muss ich dafür überschreiben?
hatte schon GetWindowText probiert aber das ging nicht.
Gruß Has3
-
Du musst gar nichts überschreiben.
Du baust Dir einfach selber eine entsprechende Funktion:Ich habe sowas mal gebaut um das ItemData einer ComboBox auszulesen.
Die entsorechende DDX Zeile schreibst Du dann halt manuell in DoDataExchange:DDX-CBItemData(pDX,IDC_MYID, m_dwMyDataField);void AFXAPI DDX_CBItemData(CDataExchange* pDX, int nIDC, DWORD &dwData) { HWND hWndCtrl = pDX->PrepareCtrl(nIDC); if (pDX->m_bSaveAndValidate) { // Get the current Topic int iIndex = (int)::SendMessage(hWndCtrl, CB_GETCURSEL, 0, 0L); if (iIndex!=CB_ERR) dwData = (DWORD)::SendMessage(hWndCtrl, CB_GETITEMDATA, iIndex, 0L); else dwData = 0; } else { // Select Topic int iIndex, iMax = iMax=(int)::SendMessage(hWndCtrl, CB_GETCOUNT, 0, 0L); for (iIndex=0; iIndex<iMax; ++iIndex) { // Just search if (dwData==(DWORD)::SendMessage(hWndCtrl, CB_GETITEMDATA, iIndex, 0L)) break; } // Found ? ::SendMessage(hWndCtrl, CB_SETCURSEL, iIndex<iMax ? iIndex : -1, 0L); } }
-
ahso

Dachte das greift auf irgendwelche Funktionen des Ctrl zu um den Text zu holen.werd das ausprobieren. vielen Dank
-
Kommt drauf an was Du machst. Ob Dunun eine Nachricht sendest oder eine Funktion des Control ausführst ist doch letzten Endes egal oder?