Click here to Skip to main content
15,898,371 members
Articles / Desktop Programming / WTL
Article

kPad - A lightweight WTL based text editor

Rate me:
Please Sign up or sign in to vote.
4.98/5 (20 votes)
5 Aug 2000 368.3K   10.3K   84   38
An example of using the WTL library and RichEdit control
  • Download source files - 79 Kb
  • Download demo project - 52 Kb
  • Sample Image - kPad.gif

    Introduction

    kPad is a lightweight text editor that works with RTF and TXT file formats.

    It's an example of using the WTL library and RichEdit control, and is based on the MTPad sample from the Microsoft SDK (12/01/99).

    Features

    • Sheets control
    • Find and Replace custom dialogs
    • Small size (104 Kb)

    Implementation

    With the help of the ATL\WTL AppWizard I created a "Multiple Threads SDI" project with a generic view window. The class SheetsCtrl is a view window for the Main Frame and a container for kSheetView child windows. kSheetView is a superclass of the RichEdit control.

    The small size of 105 Kb is achieved by removing the dependancy on the CRT library (_ATL_MIN_CRT) and use the project options /OPT:REF, /OPT:ICF, /OPT:NOWIN98.

    Environment

    This application was created with VC 6.0. SP3, WTL and the January MS SDK. It has been tested only on W2k.

    Acknowledgments

    WTL Sites References

    License

    This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

    A list of licenses authors might use can be found here


    Written By
    Web Developer
    Russian Federation Russian Federation
    I am freelance programmer. About 3 years of experience in C++ and I would rather use ATL, STL, WTL but not MFC Smile | :) . Main backgrounds are Win32 API, COM and Networking. Now I am interested about AI (Neural Network, Fuzzy Logic and GA). Currently based in Vladivostok, Russia.

    Comments and Discussions

     
    QuestionWhere can I download WTL? Pin
    9-Dec-00 1:57
    suss9-Dec-00 1:57 
    AnswerRe: Where can I download WTL? Pin
    9-Dec-00 7:19
    suss9-Dec-00 7:19 
    GeneralRe: Where can I download WTL? Pin
    10-Dec-00 0:38
    suss10-Dec-00 0:38 
    GeneralRe: Where can I download WTL? Pin
    yogz19-Nov-01 12:20
    yogz19-Nov-01 12:20 
    GeneralRe: Where can I download WTL? Pin
    Kant18-Mar-03 18:00
    Kant18-Mar-03 18:00 
    GeneralWin2k Pin
    Boris Vidolov18-Aug-00 2:49
    Boris Vidolov18-Aug-00 2:49 
    GeneralMissing DLL Pin
    Boris Vidolov18-Aug-00 2:42
    Boris Vidolov18-Aug-00 2:42 
    GeneralRe: Missing DLL Pin
    Ansgar7-Sep-00 4:37
    Ansgar7-Sep-00 4:37 
    MSIMG32.dll seems to exist only on WIN98/2000

    You can recompile the sources and remove in stdafx.h:
    //#define WINVER 0x0500
    //#define _WIN32_WINNT 0x0500
    //#define _WIN32_IE 0x0501
    //#define _RICHEDIT_VER 0x0200

    And change some lines in CmdBar.h Function DrawSideBar:
    #if WINVER >= 0x0500
    COLORREF right = GetSysColor(COLOR_ACTIVECAPTION);
    COLORREF left = GetSysColor(27); // COLOR_GRADIENTACTIVECAPTION

    COLOR16 r = (COLOR16) ((left & 0x000000FF)<<8);
    COLOR16 g = (COLOR16) (left & 0x0000FF00);
    COLOR16 b = (COLOR16) ((left & 0x00FF0000)>>8);

    TRIVERTEX vert[2] ;
    GRADIENT_RECT gRect;
    vert [0] .x = 0;
    vert [0] .y = 0;
    vert [0] .Red = r;
    vert [0] .Green = g;
    vert [0] .Blue = b;
    vert [0] .Alpha = 0x0000;

    r = (COLOR16) ((right & 0x000000FF)<<8);
    g = (COLOR16) (right & 0x0000FF00);
    b = (COLOR16) ((right & 0x00FF0000)>>8);

    vert [1] .x = iWidth;
    vert [1] .y = iSideBarHeight;
    vert [1] .Red = r;
    vert [1] .Green = g;
    vert [1] .Blue = b;
    vert [1] .Alpha = 0x0000;

    gRect.UpperLeft = 0;
    gRect.LowerRight = 1;

    GradientFill(dc.m_hDC,vert,2,&gRect,1,GRADIENT_FILL_RECT_V);
    #else //this works on NT4 too
    RECT bRect=rct;
    bRect.right=bRect.left+iWidth;
    FillRect(dc.m_hDC,&bRect,(HBRUSH)LongToPtr(COLOR_ACTIVECAPTION));
    #endif
    GeneralVery good WTL sample! Pin
    Ideal7-Aug-00 16:00
    Ideal7-Aug-00 16:00 

    General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

    Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.