2012-03-31 17 views
1

これは私の問題ですが、一定量のデータに達するまで正常に動作します。私はそれが切断されたウィンドウで例えば約1MBのHTMLファイル全体を表示することはできません。部屋の外にある編集コントロールにテキストを追加しますか?

ウィンドウ:

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; 

機能:

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); 

} 

使用法:それはその串うち、未知量の後に動作しなくなった以外、私が言ったように

logstring="Test"; 
LogText(hEdit, logstring); 

、それは、完璧に動作します私が気付いたデータは非常に一貫した数字です。

+0

['EM_LIMITTEXT'](http://msdn.microsoft.com/en-us/library/windows/desktop/bb761607.aspx)で上限を調整しようとしましたか? –

+0

ありがとうございます。 – doublesaces

答えて

0

EM_SETLIMITTEXTメッセージを使用して、編集ボックスのテキスト制限を変更できます。編集ボックスにテキストを割り当てる前に上限を定義するだけです。

+0

ありがとうございます。これは私が使ったものです。 WM_CREATEでこのメッセージを送信しました。 – doublesaces

+0

SendMessage(hEdit、EM_SETLIMITTEXT、100000000,0); – doublesaces

関連する問題