Book Image

C++ Windows Programming

By : Stefan Björnander
Book Image

C++ Windows Programming

By: Stefan Björnander

Overview of this book

It is critical that modern developers have the right tools to build practical, user-friendly, and efficient applications in order to compete in today’s market. Through hands-on guidance, this book illustrates and demonstrates C++ best practices and the Small Windows object-oriented class library to ease your development of interactive Windows applications. Begin with a focus on high level application development using Small Windows. Learn how to build four real-world applications which focus on the general problems faced when developing graphical applications. Get essential troubleshooting guidance on drawing, spreadsheet, and word processing applications. Finally finish up with a deep dive into the workings of the Small Windows class library, which will give you all the insights you need to build your own object-oriented class library in C++.
Table of Contents (22 chapters)
C++ Windows Programming
Credits
About the Author
About the Reviewer
www.PacktPub.com
Dedication
Preface
Free Chapter
1
Introduction

The LineFigure class


A line is drawn between two points, represented by the firstPoint field to the lastPoint field in the LineFigure class, as shown in the following image:

The header file overrides some of the methods of its DrawFigure base class. The DoubleClick method does nothing. As I see it, there is no really meaningful response to a double-click on a line. However, we still need to override the DoubleClick method, since it is a pure virtual method in the DrawFigure base class. If we do not override it, the LineFigure class will be abstract.

LineFigure.h

class LineFigure : public DrawFigure { 
  public: 
    LineFigure(const Window* windowPtr); 
    virtual FigureId GetId() const {return LineId;} 
    virtual void SetFirstPoint(Point point); 
 
    virtual bool IsClick(Point mousePoint); 
    virtual bool IsInside(Rect rectangleArea); 
    virtual void DoubleClick(Point mousePoint) {/* Empty. */} 
 
    virtual void Modify(Size distanceSize...