Click here to Skip to main content
13,351,971 members (79,458 online)
Click here to Skip to main content
Add your own
alternative version


73 bookmarked
Posted 14 Jun 2003

Using the MS Chart control in VC++

, 14 Jun 2003
Rate this:
Please Sign up or sign in to vote.
Setting data and labels on the MS Chart control using VC++
<!-- Add the rest of your HTML here -->


The following is the description for using the MS Chart control in VC++. The diagram below will give you an idea of the chart we are going to make.

First insert the chart control in your project using Project->Add Reference->Microsoft Chart Control. Next is populating the chart control. When I was working with Visual Basic I had used a data source to pass data to the chart. But in VC++ ,I did not get the datasource method in the initial tries. So I passed the chart data through a COleSafeArray. Thanks to J L Colson for illuminating the details in his article on code project.

Here is the code snippet for that. <PRE lang=c++>//First create a safe array COleSafeArray saRet; SAFEARRAYBOUND sab[2]; sab[0].cElements =noOfRows; // give this exactly the number of rows you display in your chart sab[1].cElements = 5; // number of columns + 1 (because the first // column is where we put the row labels, // ie in 1.1, 2.1, 3.1, 4,1 etc sab[0].lLbound = sab[1].lLbound = 1; // Use the chart as the backdrop of the legend. m_ChartControl.SetShowLegend(TRUE); // Create the safe-array... saRet.Create(VT_BSTR, 2, sab); long index[2] = { 0, 0 }; //a 2D graph needs a 2D array as index array BSTR bstr; index[0] = 1; FILEDETAILS filedetailsstruct; // this is just a datastructure I used, // pls see attached code CString cstemp; // m_filedetails is an STL list of filedetailsstruct // in this loop we populate the safe array for (i = m_filedetails.begin(); i != m_filedetails.end(); i++) { filedetailsstruct = (FILEDETAILS *) i; index[1] = 1; // make sure this cannot be converted to a valid number like "54" and // is a valid string like "John" bstr = filedetailsstruct.login.AllocSysString(); // Row label saRet.PutElement(index, bstr); index[1] = 2; bstr = filedetailsstruct.n9000.AllocSysString(); // Data for column 1 ::SysFreeString(bstr); saRet.PutElement(index, bstr); index[1] = 3; bstr = filedetailsstruct.n9002.AllocSysString(); // Data for column 2 ::SysFreeString(bstr); saRet.PutElement(index, bstr); index[1] = 4; bstr = filedetailsstruct.n9004.AllocSysString(); // Data for column 3 ::SysFreeString(bstr); saRet.PutElement(index, bstr); index[1] = 5; bstr = filedetailsstruct.nCancel.AllocSysString();// Data for column 4 ::SysFreeString(bstr); saRet.PutElement(index, bstr); index[0]++; } //now hand over the safe array to the chart control m_ChartControl.SetChartData(saRet.Detach());

Our chart data will look like this:

2,1  2,2  2,3  2,4  2,5
1,1  1,2  1,3  1,4  1,5

where 1,1 - Row label 1 2,1 - Row Label 2

Okay now to label the columns: <PRE lang=c++>m_ChartControl.SetColumnLabelCount(4); m_ChartControl.SetColumn(1); m_ChartControl.SetColumnLabel("Monday"); m_ChartControl.SetColumn(2); m_ChartControl.SetColumnLabel("Wednesday"); m_ChartControl.SetColumn(3); m_ChartControl.SetColumnLabel("Friday"); m_ChartControl.SetColumn(4); m_ChartControl.SetColumnLabel("Saturday");

Thats it folks.



Developed On Windows 2000 Server using VC++ ver 6


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

Alex C. Punnen
India India
Hi everyone!! Sometimes I get real stumped with some concepts and that gets me excited.So I say - hey let me explore - and there I go!! .Currently I am working as software engineer for Nokia Siemens Networks, Bangalore -India.My dream subject - Physics!!

You may also be interested in...


Comments and Discussions

Questionwhy i can not find Microsoft Chart Control to add as refrence Pin
Member 135073176-Nov-17 22:11
memberMember 135073176-Nov-17 22:11 
GeneralMore sample Pin
Ankata10-Jun-09 15:04
memberAnkata10-Jun-09 15:04 
GeneralMay i Have this in C# Pin
Irfan Kothari29-Dec-06 21:12
memberIrfan Kothari29-Dec-06 21:12 
GeneralRe: May i Have this in C# Pin
emadns26-Aug-08 7:43
memberemadns26-Aug-08 7:43 
QuestionHow to add only one vertical grid line in the plot? [modified] Pin
Youn-seong Cho28-Nov-06 20:40
memberYoun-seong Cho28-Nov-06 20:40 
Questiondependencies? Pin
dkvp11-Oct-06 0:23
memberdkvp11-Oct-06 0:23 
AnswerRe: dependencies? Pin
Ananth.tm2-Nov-06 18:07
memberAnanth.tm2-Nov-06 18:07 
GeneralRe: dependencies? Pin
Ananth.tm3-Nov-06 9:55
memberAnanth.tm3-Nov-06 9:55 
GeneralMSChart control display problem!! Pin
shinyhui13-Jul-06 21:59
membershinyhui13-Jul-06 21:59 
GeneralRe: MSChart control display problem!! Pin
Ananth.tm2-Nov-06 18:38
memberAnanth.tm2-Nov-06 18:38 
If you use SetColumnCount(10) and one of the data for a particular row is say 12, it crashes. Do not set RowCount or ColumnCount if that's your problem
QuestionCustom Text Over Bars?? Pin
chris17531-Mar-06 3:47
memberchris17531-Mar-06 3:47 
Generaltext over bars Pin
marcdev2-Aug-05 5:50
membermarcdev2-Aug-05 5:50 
AnswerRe: text over bars Pin
chris17531-Mar-06 3:43
memberchris17531-Mar-06 3:43 
Generalbar colors Pin
marcdev19-Jul-05 23:18
membermarcdev19-Jul-05 23:18 
GeneralRe: bar colors Pin
marcdev20-Jul-05 6:32
membermarcdev20-Jul-05 6:32 
GeneralRe: bar colors Pin
chris17531-Mar-06 3:52
memberchris17531-Mar-06 3:52 
Generalflickering problem Pin
sayup30-Jun-05 21:47
membersayup30-Jun-05 21:47 
Generaladding resource file of thew control Pin
sayup30-Jun-05 21:43
membersayup30-Jun-05 21:43 
Generalsimple plotting of x,y values Pin
Krishna Seetharaman6-Mar-05 20:14
memberKrishna Seetharaman6-Mar-05 20:14 
QuestionHow import Ms Chart to my project? Pin
mw81120-Feb-05 22:08
membermw81120-Feb-05 22:08 
AnswerRe: How import Ms Chart to my project? Pin
Krishna Seetharaman6-Mar-05 20:18
memberKrishna Seetharaman6-Mar-05 20:18 
GeneralRe: How import Ms Chart to my project? Pin
mw8117-Mar-05 20:44
membermw8117-Mar-05 20:44 
QuestionHow to hide grid line in the plot Pin
vinubhai26-Apr-04 3:19
membervinubhai26-Apr-04 3:19 
AnswerRe: How to hide grid line in the plot Pin
brngupta2-Nov-04 21:40
memberbrngupta2-Nov-04 21:40 
GeneralRe: How to hide grid line in the plot Pin
Ananth.tm13-Oct-06 10:01
memberAnanth.tm13-Oct-06 10:01 

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.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.180111.1 | Last Updated 15 Jun 2003
Article Copyright 2003 by Alex C. Punnen
Everything else Copyright © CodeProject, 1999-2018
Layout: fixed | fluid