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

  • Featuring Art Schoeller, VP and Principal Analyst, at Forrester Research Live Event Date: November 9, 2016 @ 10 AM PT / 1 PM ET Being "proactive" with your customers is not enough to survive in the market today. The truth is, organizations that understand how to engage customers on their preferred channels will create contextual, and relevant experiences for customers. Plus, they will see the financial impact of nurturing long-term customer loyalty. Join our guest speaker Art Schoeller, VP and Principal …

  • Essential Insights for Successful Cloud Migration and Management Whether you're planning your cloud migration strategy or already in the cloud, making accurate cloud decisions requires a deep analytical approach. This paper discusses the main objectives to achieve, top questions to ask, and the analytics you need at each stage of your cloud journey. You'll learn: How to identify which cloud provider will provide the best cost and performance benefits for your organization How to determine which applications …

Most Popular Programming Stories

More for Developers

RSS Feeds

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