yoogi Temat założony przez niniejszego użytkownika |
Kolorowy text w kontorle Edit » 2011-04-22 23:07:56 Witam, tak jak w temacie. Wie ktoś jak zrobić kolorowy tekst w kontrole edit ? |
|
DejaVu |
» 2011-04-22 23:52:34 Wydaje mi się, że raczej nie jest to możliwe. Cały tekst - da się zmienić. Fragment - raczej nie da się.
Kolory kontrolek |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2011-04-23 00:05:36 Znalazłem kod na kolorowy tekst ale w Windows Forms a wolał bym WinAPI. |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2011-04-23 03:12:55 Znalazłem coś takiego, tylko nie wiem jak to mniej więcej ma być w kodzie. void AddMessage( COLORREF color, const char * name, const char * text ) { CHARFORMAT2 cf2; cf2.cbSize = sizeof( cf2 ); cf2.dwEffects = CFE_BOLD; cf2.dwMask = CFM_BOLD | CFM_UNDERLINE | CFM_COLOR; int length = GetWindowTextLength( hEdit2 ); SendMessage( hEdit2, EM_SETSEL, length, length ); cf2.crTextColor = color; SendMessage( hEdit2, EM_SETCHARFORMAT, SCF_SELECTION,( LPARAM ) & cf2 ); SendMessage( hEdit2, EM_REPLACESEL, FALSE,( LPARAM ) name ); cf2.crTextColor = RGB( 0, 0, 0 ); SendMessage( hEdit2, EM_SETCHARFORMAT, SCF_SELECTION,( LPARAM ) & cf2 ); SendMessage( hEdit2, EM_REPLACESEL, FALSE,( LPARAM ) text ); }
|
|
malan |
» 2011-04-23 10:42:47 void AddMessage( HWND uchwytTwojejKontrolnki, COLORREF color, const char * name, const char * text ); i jazda ;) |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2011-04-23 15:32:44 Znalazłem lepsze rozwiązanie, RichEdit :) |
|
malan |
» 2011-04-23 16:30:17 Zapodaj może jakiś kodem dla potomnych ;) |
|
yoogi Temat założony przez niniejszego użytkownika |
» 2011-04-23 16:55:09 void AddText( HWND hwnd, char * szTextIn, COLORREF crNewColor ) { char * Text =( char * ) malloc( lstrlen( szTextIn ) + 5 ); CHARFORMAT cf; int iTotalTextLength = GetWindowTextLength( hwnd ); int iStartPos = iTotalTextLength; int iEndPos; strcpy( Text, szTextIn ); strcat( Text, "\r\n" ); SendMessage( hwnd, EM_SETSEL,( WPARAM )( int ) iTotalTextLength,( LPARAM )( int ) iTotalTextLength ); SendMessage( hwnd, EM_REPLACESEL,( WPARAM )( BOOL ) FALSE,( LPARAM )( LPCSTR ) Text ); free( Text ); cf.cbSize = sizeof( CHARFORMAT ); cf.dwMask = CFM_COLOR | CFM_UNDERLINE | CFM_BOLD; cf.dwEffects =( unsigned long ) ~( CFE_AUTOCOLOR | CFE_UNDERLINE | CFE_BOLD ); cf.crTextColor = crNewColor; iEndPos = GetWindowTextLength( hwnd ); SendMessage( hwnd, EM_SETSEL,( WPARAM )( int ) iStartPos,( LPARAM )( int ) iEndPos ); SendMessage( hwnd, EM_SETCHARFORMAT,( WPARAM )( UINT ) SCF_SELECTION,( LPARAM ) & cf ); SendMessage( hwnd, EM_HIDESELECTION,( WPARAM )( BOOL ) TRUE,( LPARAM )( BOOL ) FALSE ); SendMessage( hwnd, EM_LINESCROLL,( WPARAM )( int ) 0,( LPARAM )( int ) 1 ); SendMessage( hwnd, EM_SETREADONLY,( WPARAM ) TRUE, 0 ); }
Takim :] Tworzymy Rich Text i wywołujemy np. funkcję AddText( hWndEdit, "Hello world", RGB( 0, 0, 255 ) ); |
|
« 1 » |