CRichEditCtrl zeigt keinen Text an
-
Ich möchte in einem CRichtEditCtrl Daten der seriellen Schnittstelle anzeigen.
Dazu hab ich folgenden Code geschrieben.LRESULT CChildView::OnSerialMsg (WPARAM wParam, LPARAM /*lParam*/) { // Leeren Buffer erzeugen DWORD dwRead; char szData[101]; const int nBuflen = sizeof(szData)-1; // Daten von serieller Schnittstelle lesen do { m_serial.Read(szData,nBuflen,&dwRead); szData[dwRead] = '\0'; DisplayData(szData); } while (dwRead == nBuflen); return 0; } void CChildView::DisplayData (LPCTSTR pszData) { // Add the event to the edit control m_wndEdit.SetSel((m_wndEdit.GetTextLength()-1), -1); m_wndEdit.ReplaceSel(pszData); }Der Text wird von der seriellen Schnittstelle richtig gelesen und an DisplayData übergeben.
Leider erscheint der Text nicht in dem RichEditCtrl.
Entweder es wird nicht richtig eingefügt oder bei meiner Erstellung des RichEdit Ctrl geht etwas schief.
Erstellt wird es in der OnCreate-Funktion des CChildViews mithilfe vonVERIFY(m_wndEdit.Create(WS_VISIBLE|WS_CHILD|WS_BORDER|ES_AUTOHSCROLL|ES_AUTOVSCROLL|ES_LEFT|ES_MULTILINE,CRect(0,0,0,0),this,0));Diesen Aufruf hab ich aus einem Beispiel dort wird mit einer abgeleiteten Klasse von CRichEditCtrl gearbeitet. Ist die Erstellung so richtig? Wenn es sich über das gesamte CChildView erstrecken soll?
Die Größe wird in der OnSize noch angepasst
void CChildView::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); // RichEditCtrl an Fenstergröße anpassen m_wndEdit.SetWindowPos(0,0,0,cx,cy,SWP_NOACTIVATE|SWP_NOMOVE|SWP_NOOWNERZORDER|SWP_NOZORDER); }
-
ich mach das immer so:
void CTTMPAssistantDlg::AddLogText( const CString& text ) { if( text.IsEmpty() ) return; int len = m_edit.GetWindowTextLength(); m_edit.SetSel( len, len ); m_edit.ReplaceSel( text );das funzt auch...
-
oh mann, niemals auf den Assistenten verlassen ^^
ON_WM_SIZE()
wurde in der MessageMap nicht deklariert