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


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.


There is some flickering in the current version.

Download source - 41KB


  • It works slowly

    Posted by wangyu0831 on 12/27/2007 10:56pm

    It works slowly

  • Some problem with ComboBox

    Posted by Legacy on 09/07/2003 12:00am

    Originally posted by: kim

    use this class with combobox..
    there is no cursor in editbox

  • ExEditors Library

    Posted by Legacy on 03/19/2002 12:00am

    Originally posted by: Mike Philips

    A complete collection of editors in a single file:


  • Thinks for you advise!!

    Posted by Legacy on 02/03/2002 12:00am

    Originally posted by: DZBJET

    i'm very astonished by this article,
    and i've been searching for this article for a long time.
    thank you!

  • Ack! Win XP Error

    Posted by Legacy on 02/01/2002 12:00am

    Originally posted by: John

    It is probably Windows XP. I got an error report popup box saying:
    'SYNTAXCOLORDEMO MFC Application has encountered a problem and needs to close. We are sorry for the inconvenience.'

    Just wanted to make this known.

    ~good luck

  • Oh Fuck Yeah...

    Posted by Legacy on 12/06/2001 12:00am

    Originally posted by: hbk003

    This is some of the best work I've seen...

  • It works like shit!

    Posted by Legacy on 10/01/2001 12:00am

    Originally posted by: P

    Nice work of shit!

  • Bug in ColorEditWnd::DrawLine(long pLine) function

    Posted by Legacy on 01/20/1999 12:00am

    Originally posted by: Sergey Kornilov

    See the 11-th line in this function:
    y = pLine * CharDY - cTheText.cFirstLine;

    Should be:
    y = pLine * CharDY - cTheText.cFirstLine*CharDY;

    When I tryed to scroll text in window by up-down key pressing
    I always saw strange things. The problem was in invalid Y value
    calculation. Now it works correctly.

  • Syntax Coloring Text Edit Window

    Posted by Legacy on 12/23/1998 12:00am

    Originally posted by: Ron Royce

    I noticed that the functionality for using the shift key to highlight words is not implemented. This is a necessity for any text editor.

Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Enterprises are increasingly looking to platform as a service (PaaS) to lower their costs and speed their time to market for new applications. Developing, deploying, and managing applications in the cloud eliminates the time and expense of managing a physical infrastructure to support them. PaaS offerings must deliver additional long-term benefits, such as a lower total cost of ownership (TCO), rapid scalability, and ease of integration, all while providing robust security and availability. This report …

  • Anthony Christie, the Chief Marketing Officer for Level Communications, is responsible for customer experience, worldwide marketing and product management. In this informative asset, he shares his insights into why a private network connection to cloud-bases applications is the right decision for your enterprise. Download now to find out more.

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date