Click here to Skip to main content
15,879,535 members
Articles / Desktop Programming / MFC
Article

Bar Graph Control

Rate me:
Please Sign up or sign in to vote.
4.62/5 (25 votes)
26 Jan 2004 110.7K   4.1K   39   20
Simple bar graph control class derived from CStatic

Image 1

Introduction

Here is a simple bar graph control class derived from CStatic. It supports displaying real-time data, using any number of bars with different colors, using scale both in cm and inch, etc.

Using the code

How to add this control to your project:

  1. Copy files GraphCtrl.h and GraphCtrl.cpp to your project directory, and add to your project.
  2. Include GraphCtrl.h in files where you need to use this class.
  3. Change CStatic definitions to CGraphCtrl.
  4. Use the API described below.
int SetNumberOfBars(int num)
//Sets the number of bars you want to display. 
//If successful, it returns number of bars set, otherwise -1.
int SetBarColor(int idx, COLORREF clr)
//Sets the color for the bars.  idx is the index of the 
//bar from left to right (1,2,3..etc.)
//If successful, it returns index of the bar for which 
//the color was set, otherwise -1.
void SetUnit(int unit)
//Sets the scale to cm or inch. Send UCM for cm and UINCH for inch
void SetBarValue(int idx, int value)
//Sets the value of a bar.  idx is the index of the bar 
//for which the value to be set and 
//the parameter value is the value we have to set for it.

Example of Use

m_Graph.SetNumberOfBars(18); //Number of bars to be shown

m_Graph.SetBarColor(1,RGB(200,200,200)); 
    //Sets the color to the bar of index 1

m_Graph.SetBarValue(1,22); //Sets value to the bar of index 1

m_Graph.SetUnit(UCM);  //Sets scale to cm

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
Team Leader
India India
Mr. Shaibujan has got 9+ yrs of programming experience in C/C++, on various domains like Cryptography, Biometric Security, Network Security, Pattern Recognition, Image Processing, MPEG2, MPEG4, H.264, AAC etc.

Comments and Discussions

 
GeneralMy vote of 5 Pin
Vinod Viswanath14-Sep-12 21:06
Vinod Viswanath14-Sep-12 21:06 
GeneralMy vote of 2 Pin
DRLaverdure18-Sep-10 9:27
DRLaverdure18-Sep-10 9:27 
GeneralThere is a nice bar chart .Net component as well Pin
oklook14-Aug-09 1:40
oklook14-Aug-09 1:40 
Questionlarge number of bars? Pin
Jared CompEng29-Apr-07 2:14
Jared CompEng29-Apr-07 2:14 
Questionambiguous size of bar ??!!!? Pin
mohsen nourian20-Sep-06 20:24
mohsen nourian20-Sep-06 20:24 
GeneralSave to Bitmap File Pin
varandas7918-Jun-06 3:00
varandas7918-Jun-06 3:00 
Generalerror in line : using namespace std Pin
mohsen nourian24-Sep-06 2:25
mohsen nourian24-Sep-06 2:25 
Generalproblem with big values Pin
Member 1916934-Apr-04 12:32
Member 1916934-Apr-04 12:32 
GeneralRe: problem with big values Pin
mohsen nourian24-Sep-06 19:27
mohsen nourian24-Sep-06 19:27 
GeneralSetBarColor Pin
Member 1916934-Apr-04 3:33
Member 1916934-Apr-04 3:33 
GeneralRe: SetBarColor Pin
hucker14-Jun-04 11:01
hucker14-Jun-04 11:01 
GeneralRe: SetBarColor Pin
NiFF8-Dec-04 23:44
NiFF8-Dec-04 23:44 
General- Memory Leak Pin
Member 2545852-Mar-04 9:18
Member 2545852-Mar-04 9:18 
GeneralRe: - Memory Leak Pin
Shaibujan3-Mar-04 6:07
Shaibujan3-Mar-04 6:07 
GeneralIncorrect Device MapMode ... Pin
Behzad Ebrahimi3-Feb-04 2:49
Behzad Ebrahimi3-Feb-04 2:49 
GeneralRe: Incorrect Device MapMode ... Pin
Shaibujan3-Feb-04 6:21
Shaibujan3-Feb-04 6:21 
GeneralQuestion on OnCustomDraw Pin
YoSilver27-Jan-04 15:17
YoSilver27-Jan-04 15:17 
What's the use of
void OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult);
for the static control????
GeneralRe: Question on OnCustomDraw Pin
Shaibujan28-Jan-04 6:49
Shaibujan28-Jan-04 6:49 
GeneralFinally about time... Pin
Snyp27-Jan-04 12:00
Snyp27-Jan-04 12:00 
GeneralRe: Finally about time... Pin
Shaibujan27-Jan-04 19:27
Shaibujan27-Jan-04 19:27 

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.