Click here to Skip to main content
15,861,168 members
Articles / Desktop Programming / MFC

High-speed Charting Control

Rate me:
Please Sign up or sign in to vote.
4.95/5 (327 votes)
13 Jul 2010CPOL35 min read 4.1M   99.5K   787  
A flexible charting control to display 2D data
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>ChartDemo: E:/Sources Misc/ChartDemo/ChartCtrl/ChartSerie.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
<h1>E:/Sources Misc/ChartDemo/ChartCtrl/ChartSerie.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> *</span>
<a name="l00003"></a>00003 <span class="comment"> *      ChartSerie.h</span>
<a name="l00004"></a>00004 <span class="comment"> *</span>
<a name="l00005"></a>00005 <span class="comment"> *      Written by C�dric Moonen (cedric_moonen@hotmail.com)</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> *      This code may be used for any non-commercial and commercial purposes in a compiled form.</span>
<a name="l00010"></a>00010 <span class="comment"> *      The code may be redistributed as long as it remains unmodified and providing that the </span>
<a name="l00011"></a>00011 <span class="comment"> *      author name and this disclaimer remain intact. The sources can be modified WITH the author </span>
<a name="l00012"></a>00012 <span class="comment"> *      consent only.</span>
<a name="l00013"></a>00013 <span class="comment"> *      </span>
<a name="l00014"></a>00014 <span class="comment"> *      This code is provided without any garanties. I cannot be held responsible for the damage or</span>
<a name="l00015"></a>00015 <span class="comment"> *      the loss of time it causes. Use it at your own risks</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> *      An e-mail to notify me that you are using this code is appreciated also.</span>
<a name="l00018"></a>00018 <span class="comment"> *</span>
<a name="l00019"></a>00019 <span class="comment"> *</span>
<a name="l00020"></a>00020 <span class="comment"> */</span>
<a name="l00021"></a>00021 
<a name="l00022"></a>00022 <span class="preprocessor">#if !defined(AFX_CHARTSERIE_H__FFCF0E32_10E7_4A4D_9FF3_3C6177EDE4B1__INCLUDED_)</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#define AFX_CHARTSERIE_H__FFCF0E32_10E7_4A4D_9FF3_3C6177EDE4B1__INCLUDED_</span>
<a name="l00024"></a>00024 <span class="preprocessor"></span>
<a name="l00025"></a>00025 <span class="preprocessor">#if _MSC_VER &gt; 1000</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#pragma once</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#endif // _MSC_VER &gt; 1000</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span>
<a name="l00029"></a>00029 
<a name="l00030"></a>00030 <span class="preprocessor">#define INVALID_POINT   UINT_MAX</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span>
<a name="l00032"></a>00032 <span class="preprocessor">#include "ChartAxis.h"</span>
<a name="l00033"></a>00033 <span class="preprocessor">#include "ChartSeriesMouseListener.h"</span>
<a name="l00034"></a>00034 
<a name="l00035"></a>00035 <span class="preprocessor">#include &lt;map&gt;</span>
<a name="l00036"></a>00036 <span class="preprocessor">#include "ChartString.h"</span>
<a name="l00037"></a>00037 
<a name="l00038"></a>00038 <span class="keyword">class </span><a class="code" href="class_c_chart_legend.html" title="This class is responsible for the legend displayed on the control.">CChartLegend</a>;
<a name="l00039"></a>00039 <span class="keyword">class </span><a class="code" href="class_c_chart_ctrl.html" title="The main chart control class.">CChartCtrl</a>;
<a name="l00040"></a>00040 
<a name="l00041"></a>00041 <span class="preprocessor">#define INVALID_POINT   UINT_MAX</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span>
<a name="l00044"></a>00044 
<a name="l00054"></a><a class="code" href="class_c_chart_serie.html">00054</a> <span class="keyword">class </span><a class="code" href="class_c_chart_serie.html" title="Abstract class that provides a common &amp;quot;interface&amp;quot; for all series in the...">CChartSerie</a>
<a name="l00055"></a>00055 {
<a name="l00056"></a>00056         <span class="keyword">friend</span> <a class="code" href="class_c_chart_ctrl.html" title="The main chart control class.">CChartCtrl</a>;
<a name="l00057"></a>00057         <span class="keyword">friend</span> <a class="code" href="class_c_chart_legend.html" title="This class is responsible for the legend displayed on the control.">CChartLegend</a>;
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="keyword">public</span>:
<a name="l00061"></a>00061         <span class="keyword">virtual</span> <span class="keywordtype">unsigned</span> <a class="code" href="class_c_chart_serie.html#42410362f42280c706462288365e5dff" title="Returns the number of points in the series.">GetPointsCount</a>() <span class="keyword">const</span> = 0;
<a name="l00062"></a>00062 
<a name="l00064"></a>00064         <span class="keyword">virtual</span> CPoint <a class="code" href="class_c_chart_serie.html#8252f472c3e02323dd03ce683257d57e" title="Returns the screen coordinate of a specific point.">GetPointScreenCoord</a>(<span class="keywordtype">unsigned</span> uPointIndex) = 0;
<a name="l00065"></a>00065 
<a name="l00067"></a>00067 
<a name="l00075"></a>00075         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#ec4f2c519c45fe594a013c739206f5f7" title="Retrieves the minimum and maxium Y values of the series.">GetSerieYMinMax</a>(<span class="keywordtype">double</span>&amp; Min, <span class="keywordtype">double</span>&amp; Max)  <span class="keyword">const</span> = 0;
<a name="l00077"></a>00077 
<a name="l00085"></a>00085         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#eac6b9eb8032f52619014ddc328792e2" title="Retrieves the minimum and maxium X values of the series.">GetSerieXMinMax</a>(<span class="keywordtype">double</span>&amp; Min, <span class="keywordtype">double</span>&amp; Max)  <span class="keyword">const</span> = 0;
<a name="l00087"></a>00087 
<a name="l00095"></a>00095         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#b7a8079da53d6a6b44af1ed3555ab87d" title="Retrieves the minimum and maxium screen X values of the series.">GetSerieXScreenMinMax</a>(<span class="keywordtype">double</span>&amp; Min, <span class="keywordtype">double</span>&amp; Max)  <span class="keyword">const</span> = 0;
<a name="l00097"></a>00097 
<a name="l00105"></a>00105         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#ec1d6b86dbe79e38c65c7e4c391a7db6" title="Retrieves the minimum and maxium screen Y values of the series.">GetSerieYScreenMinMax</a>(<span class="keywordtype">double</span>&amp; Min, <span class="keywordtype">double</span>&amp; Max)  <span class="keyword">const</span> = 0;
<a name="l00106"></a>00106 
<a name="l00108"></a>00108         <span class="keywordtype">void</span>             <a class="code" href="class_c_chart_serie.html#b0bb5dd670279222411d4aafd3ac2dea" title="Sets the name of the series, which is displayed in the legend.">SetName</a>(<span class="keyword">const</span> TChartString&amp; NewName);
<a name="l00110"></a><a class="code" href="class_c_chart_serie.html#e308f6c6f644439b7b59d19bffe38cf1">00110</a>         TChartString <a class="code" href="class_c_chart_serie.html#e308f6c6f644439b7b59d19bffe38cf1" title="Returns the name of the series.">GetName</a>()<span class="keyword"> const              </span>{ <span class="keywordflow">return</span> <a class="code" href="class_c_chart_serie.html#7fc508448dd10f3baba827adc23d8798" title="The series name displayed in the legend.">m_strSerieName</a>; }
<a name="l00111"></a>00111 
<a name="l00113"></a>00113 
<a name="l00121"></a>00121         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#f60f21abce8f270d943a2870377af5a4" title="Converts any data point into its relative screen point.">ValueToScreen</a>(<span class="keywordtype">double</span> XValue, <span class="keywordtype">double</span> YValue, CPoint&amp; ScreenPoint)  <span class="keyword">const</span>;
<a name="l00123"></a>00123         <span class="keywordtype">double</span> <a class="code" href="class_c_chart_serie.html#ad323db2efabc8ba5cc5b5639fcc5da6" title="Converts an Y screen value into its relative Y data value.">YScreenToValue</a>(<span class="keywordtype">long</span> YScreenCoord)  <span class="keyword">const</span>;
<a name="l00125"></a>00125         <span class="keywordtype">double</span> <a class="code" href="class_c_chart_serie.html#8ed785985e449503435f1f4d38ba395e" title="Converts an Xscreen value into its relative X data value.">XScreenToValue</a>(<span class="keywordtype">long</span> XScreenCoord)  <span class="keyword">const</span>;
<a name="l00126"></a>00126 
<a name="l00128"></a>00128         <a class="code" href="class_c_chart_serie.html#70c951e0d9c73eb9bc35373781d9358f" title="Constructor.">CChartSerie</a>(<a class="code" href="class_c_chart_ctrl.html" title="The main chart control class.">CChartCtrl</a>* pParent);
<a name="l00130"></a>00130         <span class="keyword">virtual</span> <a class="code" href="class_c_chart_serie.html#5505e0bc029eb29fd927fb5c43b02ad5" title="Destructor.">~CChartSerie</a>();
<a name="l00131"></a>00131 
<a name="l00133"></a>00133 
<a name="l00137"></a>00137         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#e2e0c95a765d80ff74a0936784f5d84d" title="Specifies if the series is visible or not.">SetVisible</a>(<span class="keywordtype">bool</span> bVisible);
<a name="l00139"></a><a class="code" href="class_c_chart_serie.html#0b5abeb1edfb69ec6c1133542784c01c">00139</a>         <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#0b5abeb1edfb69ec6c1133542784c01c" title="Returns true if the series is visible.">IsVisible</a>()<span class="keyword">  const         </span>{ <span class="keywordflow">return</span> <a class="code" href="class_c_chart_serie.html#94abd6b662b6cef7daf54f406ab7932c" title="Specifies if the series is visible.">m_bIsVisible</a>; }
<a name="l00140"></a>00140 
<a name="l00142"></a><a class="code" href="class_c_chart_serie.html#572849edc8b9e613e82ef5878cacc003">00142</a>         COLORREF <a class="code" href="class_c_chart_serie.html#572849edc8b9e613e82ef5878cacc003" title="Returns the color of the series.">GetColor</a>()<span class="keyword"> const                          </span>{ <span class="keywordflow">return</span> <a class="code" href="class_c_chart_serie.html#31ee0886968100ede5a3d20797c7848d" title="Color of the series.">m_SerieColor</a>; }
<a name="l00144"></a>00144         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#1580e46e763e11168d60a4e23503d8b8" title="Sets the color of the series.">SetColor</a>(COLORREF NewColor);
<a name="l00146"></a><a class="code" href="class_c_chart_serie.html#80a017e164d59595da682c712c24ee1b">00146</a>         COLORREF <a class="code" href="class_c_chart_serie.html#80a017e164d59595da682c712c24ee1b" title="Returns the color of the shadow.">GetShadowColor</a>()<span class="keyword"> const            </span>{ <span class="keywordflow">return</span> <a class="code" href="class_c_chart_serie.html#795b0d0f4bfb6a5a634aece700481422" title="Color of the shadow.">m_ShadowColor</a>; }
<a name="l00148"></a>00148         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#10700a1d1221de0d4071916e772ececb" title="Sets the color of the shadow.">SetShadowColor</a>(COLORREF NewColor);
<a name="l00150"></a>00150         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#9e49b98486198c9af23ed5d613727c5f" title="Enables or disables the shadow for the series.">EnableShadow</a>(<span class="keywordtype">bool</span> bEnable);
<a name="l00152"></a>00152         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#01ec05a299e5420d5ff770918e4b8223" title="Sepcifies the depth (in pixels) of the shadow.">SetShadowDepth</a>(<span class="keywordtype">int</span> Depth);
<a name="l00153"></a>00153 
<a name="l00155"></a>00155 
<a name="l00163"></a>00163         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#941aec6162f5b449fc570bc5063fb076" title="Tests if a certain screen point is on the series.">IsPointOnSerie</a>(<span class="keyword">const</span> CPoint&amp; screenPoint, <span class="keywordtype">unsigned</span>&amp; uIndex) <span class="keyword">const</span> = 0;
<a name="l00164"></a>00164 
<a name="l00166"></a><a class="code" href="class_c_chart_serie.html#800f46d86d6078273a8437e719bbf259">00166</a>         <span class="keywordtype">unsigned</span> <a class="code" href="class_c_chart_serie.html#800f46d86d6078273a8437e719bbf259" title="Returns the series Id.">GetSerieId</a>()<span class="keyword"> const  </span>{ <span class="keywordflow">return</span> m_uSerieId; }
<a name="l00168"></a>00168 
<a name="l00178"></a>00178         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#c1a19e68c61999394c483d11c3622b0c" title="Enables or disables certain mouse notifications on the series.">EnableMouseNotifications</a>(<span class="keywordtype">bool</span> bClickEnabled, <span class="keywordtype">bool</span> bMoveEnabled);
<a name="l00179"></a>00179 
<a name="l00180"></a>00180 <span class="keyword">protected</span>:
<a name="l00182"></a>00182         <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#1c759c116f098a0223563fd2537348ba" title="Refreshes the automatic axes associated with this series.">RefreshAutoAxes</a>();
<a name="l00184"></a>00184 
<a name="l00192"></a>00192         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#5e9c07d45e8594080e1a09bcb78cfdd4" title="Returns the first and last visible points of the series.">GetVisiblePoints</a>(<span class="keywordtype">unsigned</span>&amp; uFirst, <span class="keywordtype">unsigned</span>&amp; uLast) <span class="keyword">const</span> = 0;
<a name="l00193"></a>00193 
<a name="l00195"></a>00195 
<a name="l00202"></a>00202     <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#fc56f75dd2c598b4868da42f4dcc11b3" title="Draws the legend icon for the series.">DrawLegend</a>(CDC* pDC, <span class="keyword">const</span> CRect&amp; rectBitmap) <span class="keyword">const</span> =0;
<a name="l00203"></a>00203 
<a name="l00205"></a>00205 
<a name="l00212"></a>00212         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#580f8d02448c452d61f2bc68b1dea066" title="Draws the most recent points of the series.">Draw</a>(CDC* pDC) =0;
<a name="l00214"></a>00214 
<a name="l00219"></a>00219         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#3244636a57dde469a2d0c57fe3e7f8e3" title="Redraws the full series.">DrawAll</a>(CDC *pDC) =0;
<a name="l00221"></a>00221 
<a name="l00226"></a>00226         <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_c_chart_serie.html#64af061c40e97301c3f7816056706a39" title="Draws the labels of the series.">DrawLabels</a>(CDC* pDC) =0;
<a name="l00227"></a>00227 
<a name="l00229"></a>00229 
<a name="l00237"></a>00237         <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#e0383f414bfe61f1f2c018e459d2f70c" title="Called when a mouse event is detected on the chart.">OnMouseEvent</a>(<a class="code" href="class_c_chart_mouse_listener.html#cffa1073dca632eca72f7339ecb350d7" title="Enumeration listing the type of mouse events.">CChartMouseListener::MouseEvent</a> mouseEvent, 
<a name="l00238"></a>00238                                                                 <span class="keyword">const</span> CPoint&amp; screenPoint) = 0;
<a name="l00239"></a>00239 
<a name="l00241"></a><a class="code" href="class_c_chart_serie.html#1b505459c44c98950fd0c084dd0d316f">00241</a>         <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#1b505459c44c98950fd0c084dd0d316f" title="Returns true if the series reacts on mouse moves.">NotifyMouseMoveEnabled</a>()  { <span class="keywordflow">return</span> m_bMouseMoveNotifications;  }
<a name="l00243"></a><a class="code" href="class_c_chart_serie.html#de30402fc61235eae3ece939bc4d2c0f">00243</a>         <span class="keywordtype">bool</span> <a class="code" href="class_c_chart_serie.html#de30402fc61235eae3ece939bc4d2c0f" title="Returns true if the series reacts on mouse clicks.">NotifyMouseClickEnabled</a>() { <span class="keywordflow">return</span> m_bMouseClickNotifications; }
<a name="l00244"></a>00244 
<a name="l00246"></a><a class="code" href="class_c_chart_serie.html#e58934056f70a5dc032294893d926f11">00246</a>         <a class="code" href="class_c_chart_ctrl.html" title="The main chart control class.">CChartCtrl</a>* <a class="code" href="class_c_chart_serie.html#e58934056f70a5dc032294893d926f11" title="The parent charting control.">m_pParentCtrl</a>;
<a name="l00248"></a><a class="code" href="class_c_chart_serie.html#44258e79dbd6649366cad26d43d4535b">00248</a>         <a class="code" href="class_c_chart_axis.html" title="Base class that takes care of the management of a chart axis.">CChartAxis</a>* <a class="code" href="class_c_chart_serie.html#44258e79dbd6649366cad26d43d4535b" title="The related vertical axis.">m_pVerticalAxis</a>;    
<a name="l00250"></a><a class="code" href="class_c_chart_serie.html#2b071028dd27e4c20f3b6f9e3c2f5be4">00250</a>         <a class="code" href="class_c_chart_axis.html" title="Base class that takes care of the management of a chart axis.">CChartAxis</a>* <a class="code" href="class_c_chart_serie.html#2b071028dd27e4c20f3b6f9e3c2f5be4" title="The related horizontal axis.">m_pHorizontalAxis</a>;  
<a name="l00251"></a>00251 
<a name="l00253"></a><a class="code" href="class_c_chart_serie.html#7fc508448dd10f3baba827adc23d8798">00253</a>         TChartString <a class="code" href="class_c_chart_serie.html#7fc508448dd10f3baba827adc23d8798" title="The series name displayed in the legend.">m_strSerieName</a>;    
<a name="l00254"></a>00254 
<a name="l00256"></a><a class="code" href="class_c_chart_serie.html#94abd6b662b6cef7daf54f406ab7932c">00256</a>         <span class="keywordtype">bool</span>        <a class="code" href="class_c_chart_serie.html#94abd6b662b6cef7daf54f406ab7932c" title="Specifies if the series is visible.">m_bIsVisible</a>;
<a name="l00258"></a><a class="code" href="class_c_chart_serie.html#eed7e4283c2c4d180d03de51bee0b411">00258</a>         <span class="keywordtype">bool</span>            <a class="code" href="class_c_chart_serie.html#eed7e4283c2c4d180d03de51bee0b411" title="Specifies if the series has shadow enabled.">m_bShadow</a>;      
<a name="l00260"></a><a class="code" href="class_c_chart_serie.html#31ee0886968100ede5a3d20797c7848d">00260</a>         COLORREF        <a class="code" href="class_c_chart_serie.html#31ee0886968100ede5a3d20797c7848d" title="Color of the series.">m_SerieColor</a>;
<a name="l00262"></a><a class="code" href="class_c_chart_serie.html#795b0d0f4bfb6a5a634aece700481422">00262</a>         COLORREF        <a class="code" href="class_c_chart_serie.html#795b0d0f4bfb6a5a634aece700481422" title="Color of the shadow.">m_ShadowColor</a>;
<a name="l00264"></a><a class="code" href="class_c_chart_serie.html#45935afe018d61b5535de248ea0abfa4">00264</a>         <span class="keywordtype">int</span>                     <a class="code" href="class_c_chart_serie.html#45935afe018d61b5535de248ea0abfa4" title="Depth (in pixels) of the shadow.">m_iShadowDepth</a>;
<a name="l00266"></a><a class="code" href="class_c_chart_serie.html#cb9b462fb6cd06efcc222989a288de9e">00266</a>         CRect           <a class="code" href="class_c_chart_serie.html#cb9b462fb6cd06efcc222989a288de9e" title="The rectangle in which the series should be drawn.">m_PlottingRect</a>;
<a name="l00267"></a>00267 
<a name="l00268"></a>00268 <span class="keyword">private</span>:
<a name="l00270"></a>00270         <span class="keywordtype">void</span> SetPlottingRect(<span class="keyword">const</span> CRect&amp; plottingRect)  { <a class="code" href="class_c_chart_serie.html#cb9b462fb6cd06efcc222989a288de9e" title="The rectangle in which the series should be drawn.">m_PlottingRect</a> = plottingRect; }
<a name="l00271"></a>00271 
<a name="l00273"></a>00273         <span class="keyword">static</span> <span class="keywordtype">unsigned</span> m_uNextFreeId;
<a name="l00275"></a>00275         <span class="keywordtype">unsigned</span> m_uSerieId;
<a name="l00276"></a>00276 
<a name="l00278"></a>00278         <span class="keywordtype">bool</span> m_bMouseClickNotifications;
<a name="l00280"></a>00280         <span class="keywordtype">bool</span> m_bMouseMoveNotifications;
<a name="l00281"></a>00281 };
<a name="l00282"></a>00282 
<a name="l00283"></a>00283 <span class="preprocessor">#endif // !defined(AFX_CHARTSERIE_H__FFCF0E32_10E7_4A4D_9FF3_3C6177EDE4B1__INCLUDED_)</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Jan 17 13:33:10 2010 for ChartDemo by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Engineer
Belgium Belgium
I am a 29 years old guy and I live with my girlfriend in Hoegaarden, little city from Belgium well known for its white beer Smile | :) .
I studied as an industrial engineer in electronics but I oriented myself more towards software development when I started to work.
Currently I am working in a research centre in mechatronica. I mainly develop in C++ but I also do a bit of Java.
When I have so spare time, I like to read (mainly fantasy) and play electric guitar.

Comments and Discussions