Kod C++ Builder-a se novije verzije RichEdit-a (od verzije 1.0) koriste uglavnom
radi automatske URL detekcije, kao i zbog višestrukog UNDO/REDO, itd...
Evo otprilike kako bi se BCB pripremio za korišćenje novije verzije RitchEdit-a,
a pretpostavljam da je vrlo slično (ako ne i isto) za VC++
Code:
#include <richedit.h>
HWND RichEdit;
Zatim negde u konstruktoru ili možda čak i u OnActivate:
Code:
//Da naprvavite RichEdit kontrolu, treba pozvati CreateWindowEx() function.
//Ako želite da koristite RichEdit 1.0 (Riched32.dll), treba specifikovati RichEdit
//kao "window class" parametar. Ako želite da koristite Rich Edit 2.0 ili veći
//(Riched20.dll), treba specifikovati RICHEDIT_CLASS kao "window class" parametar.
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
if( !GetModuleHandle( "RICHED20.DLL" ) )
LoadLibrary( "RICHED20.DLL" );
RichEdit = CreateWindowEx( NULL, RICHEDIT_CLASS,
NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL |
WS_HSCROLL | ES_MULTILINE | ES_WANTRETURN |
WS_BORDER, 0, 0, Width, 150, Handle, NULL,
HInstance, NULL );
if( !RichEdit )
{
ShowMessage( "Ne mogu da napravim RICHEDIT prozor\n"
"Application će biti zatvorena!" );
Application->Terminate();
}
}
Code:
// Poruka za uvođenje nove osobine
void __fastcall TForm1::Button1Click(TObject *Sender)
{
SendMessage( RichEdit, EM_AUTOURLDETECT, true, NULL );
}
Code:
// npr: promena fonta
void __fastcall TForm1::Button2Click(TObject *Sender)
{
CHARFORMAT2 Format;
Format.cbSize = sizeof( CHARFORMAT );
Format.dwMask = CFM_FACE | CFM_COLOR;
strcpy( Format.szFaceName, "Verdana" );
Format.crTextColor = RGB( 0, 0, 255 );
SendMessage( RichEdit, EM_SETCHARFORMAT, SCF_ALL, (LPARAM)(CHARFORMAT FAR *)&Format );
}