This class provides a CWnd derived editor that provides syntax
coloring based on a keyword file you provide. It also supports
auto-indent and retab. It is much faster than using CRichEditView to
do the same thing, but it flickers a little and does not support any
additional formatting.
There are two classes that must be added to a project
“ColorEditWnd” is the editor and “Colorize” is the parser. The
included project shows how to add the window.
Add the window as follows:
Add a member variable which is a pointer to a ColorEditWnd (in
this example cColorWnd)
After initialization of the parent window instantiate the color
edit window as follows:
CRect client;
GetClientRect(client);
CString keywordsFile = “Keywords.ini”;
BOOL caseSensitive = FALSE;
long pCharDX = 10;
long pCharDY = 16;
long pTabSize = 4;
int pFontSize = 120;
CString pFontName = “Courier New”;
cColorWnd = new
ColorEditWnd(
this, //parent
window
client, //initial size and position
IDC_COLOR_WND, //id value
keywordsFile, //keywords file
caseSensitive, //case sensitive ?
pCharDX, //width of each character
pCharDY, //height of each character
pTabSize, //size of a tab in characters
pFontSize, //font size * 10 (I.E. 100 = 10)
pFontName); //the font name
cColorWnd->ShowWindow(SW_SHOW);
Use the methods “LoadText” and “UnloadText” to control the text in
the edit window. .
Keyword File
The keyword file is a simple text file with each word on a
separate line. Individual words will appear as keywords (blue), words
preceded by ‘&’ are user defined functions (red). If a word is
preceded by ‘+’ it causes an auto-indent, ‘-‘ causes an
auto-unindent.
The example project includes a keyword file for VBA.
Limitations
There is some flickering in the current version.