Also hier ist mein Problem, es funktioniert gut, bis es eine bestimmte Menge an Daten erreicht. Ich kann nicht eine ganze HTML-Datei zum Beispiel zeigen, die ungefähr 1 MB in dem Fenster ist, das es abgeschnitten wird.Text an ein Bearbeitungssteuerelement anfügen?
Fenster:
case WM_CREATE:
hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_READONLY | WS_HSCROLL | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL,
0, 0, 100, 100, hWnd, (HMENU)IDC_MAIN_EDIT, GetModuleHandle(NULL), NULL);
if(hEdit == NULL)
MessageBox(hWnd, "Could not create edit box.", "Error", MB_OK | MB_ICONERROR);
hfDefault = (HFONT)GetStockObject(DEFAULT_GUI_FONT);
SendMessage(hEdit, WM_SETFONT, (WPARAM)hfDefault, MAKELPARAM(FALSE, 0));
LogText(hEdit,logstring);
break;
Funktion:
void LogText(HWND hEdit, const char * logstring)
{
const char * logstring2="\r\n";
int iLength = GetWindowTextLength(hEdit);
SendMessage(hEdit, EM_SETSEL, iLength, iLength);
SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM) logstring);
SendMessage(hEdit, WM_VSCROLL, SB_BOTTOM, (LPARAM)NULL);
int iLength2 = GetWindowTextLength(hEdit);
SendMessage(hEdit, EM_SETSEL, iLength2, iLength2);
SendMessage(hEdit, EM_REPLACESEL, 0, (LPARAM) logstring2);
SendMessage(hEdit, WM_VSCROLL, SB_BOTTOM, (LPARAM)NULL);
}
Verbrauch:
logstring="Test";
LogText(hEdit, logstring);
Wie ich schon sagte, es funktioniert perfekt, außer es nach seiner ausspucken eine unbekannte Menge nicht mehr funktioniert von Daten, die ich bemerkt habe, ist eine sehr konsistente Nummer.
Haben Sie versucht, die Obergrenze mit ['EM_LIMITTEXT'] anzupassen (http://msdn.microsoft.com/en-us/library/windows/desktop/bb761607.aspx)? –
Vielen Dank. – doublesaces