Syntax coloring text edit window class

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.

Download source – 41KB

More by Author

Must Read