Click here to Skip to main content
Click here to Skip to main content

Pie Chart Control

, 18 Aug 2001
Rate this:
Please Sign up or sign in to vote.
This control creates a simple Pie Chart in a dialog
<!-- Download Links --> <!-- Article image -->

Sample Image - pie_chart_ctrl.gif

<!-- Main HTML starts here -->


This control class CPieChartCtrl is derived from CWnd. The purpose is to create a simple 2D pie chart in a dialog. The code is created and compiled with Visual C++ 5.0 SP3 under Windows 98.

How to use

  1. Use the MS Visual C++ dialog editor to place a custom control on the dialog, and enter "PIE_CHART_CTRL" as the Class name.

  2. Add a CPieChartCtrl class member in the header file
    #include "PieChartCtrl.h"
    CPieChartCtrl m_wndChart;
  3. Subclass the class member with the control in InitDialog()
    m_wndChart.SubclassDlgItem(IDC_PIECHART1, this); //IDC_PIECHART1 is the control ID
  4. Use these functions to edit to chart
    // SetTitle(CString) - Set the chart title text
    m_wndChart.SetTitle("Chart Title");
    // Reset() - Reset the chart and delete all pieces
    // AddPiece(COLORREF colorBack, COLORREF colorText, 
    //            int nAngle, int strInfo = "");
    // Add one piece into the chart
    m_wndChart.AddPiece(colorBack, colorText, nAngle, strInfo);


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


About the Author

Yuheng Zhao

United States United States
No Biography provided

Comments and Discussions

GeneralUse the PieChartCtrl.cpp for Commercial Application Pinmembermayocheng6-Jan-10 17:47 
GeneralUse for commercial app Pinmemberminimal_objects25-Aug-08 6:07 
Questionadding this to an already existing MFC project? PinmemberMember #35202051-Feb-07 12:10 
GeneralFix to draw complete circle Pinmemberbkowald27-Oct-04 6:30 
Sometimes I have things that are 100 percent. (100 percent project completed, 100 percent customer satifaction etc) and the pie graph wouldn't draw an angle of 360 to fill in the circle.
So I commented out the line
//if (pt2!=pt1)
memDC.Pie(m_rectChart, pt2, pt1);
in the OnPaint() handler.
Now it fills in the correct color for 100 percent. If I draw something that is 100 percent (angle of 360) then I don't attempt to draw anything else that has 0, as that will write over it.

Generallets add more to it Pinmemberaeropriest9-Apr-02 9:20 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150302.1 | Last Updated 19 Aug 2001
Article Copyright 2001 by Yuheng Zhao
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid