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

GraphFX - A graph framework

By , 9 Nov 2000
 
<!-- Download Links -->
  • Download demo project - 192 Kb
  • <!-- Article image -->

    Sample Image - graphfx.gif

    Background

    The following code is based on a application I wrote to monitor Processes and Threads. I visually displayed the CPU percentages against processes/threads running on a Windows system.

    When I released the application to Code Project, many people contacted via email for either the code to do the drawing or the code to enumerate the processes. Well this is step one, the drawing code.

    Implemention

    To implement the CGraphFX frameworks, include GraphFX.h, GraphFX.cpp, Screen.h, Screen.cpp, ItemArray.h, ItemArray.cpp, Item.h and Item.cpp to your project.

    GraphFX.h, GraphFX.cpp, Screen.h, and Screen.cpp implement the View and Drawing code.

    The screen class is responsible for drawing the screen (as the name suggests) the drawing code for the bars text etc, is found in CItem (each item is responsible for drawing itself).

    Next add the view header file to your projects view header file

    #include "GraphViewFX.h"

    Then derive your view from CGraphViewFX.

    class CGraphView : public CGraphViewFX
    

    Nice and easy!

    ItemArray.h, ItemArray.cpp and there names states, is a container for the CItem objects.

    Item.h and Item.cpp contain the numerical information. 

    I've set my own array of items to show as example.

    The OnDraw function in your own view must call the CGraphViewFX::OnDraw base class implentation first - see code.

    The CGraphFX class is responsible for Scrolling, Drawing and Hit-testing the items on the page - see code.

    You can add your own functionality to CItem to expand on what I have created here, ideally CItem would be a base class.

    That's it - I hope you like.

    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

    About the Author

    Norm .droid
    Software Developer (Senior) Software Kinetics
    United Kingdom United Kingdom



    Software Kinetics
    are experts in developing customised and bespoke applications and have expertise in the development of desktop, mobile and internet applications on Windows.

    We specialise in:

    • User Interface Design
    • Desktop Development
    • Windows Phone Development
    • Windows Presentation Framework
    • Windows Forms
    • Windows Communication Framework
    • Windows Services
    • Network Applications
    • Database Applications
    • Web Development
    • Web Services
    • Silverlight
    • ASP.net
     
    Visit Software Kinetics
    Follow on   Twitter

    Sign Up to vote   Poor Excellent
    Add a reason or comment to your vote: x
    Votes of 3 or less require a comment

    Comments and Discussions

     
    Hint: For improved responsiveness ensure Javascript is enabled and choose 'Normal' from the Layout dropdown and hit 'Update'.
    You must Sign In to use this message board.
    Search this forum  
        Spacing  Noise  Layout  Per page   
    GeneralMy vote of 1memberSheetal_Joshi8-Dec-09 6:03 
    GeneralMy vote of 1memberRyleigh27-Mar-09 7:38 
    GeneralRe: My vote of 1groupNorm .net20-May-09 4:46 
    Let see it! Come on the viewers are waiting!
     

    QuestionGreat work it is freeware?memberasfur19-Sep-06 10:17 
    QuestionHow to Use CItem?memberzy76056-Apr-06 0:16 
    GeneralI want a professonal Graph Dispaly witmembervikas4117910-Aug-05 23:34 
    QuestionHow myItem input to pItem??sussByung_Hun13-Jul-05 21:21 
    AnswerRe: How myItem input to pItem??memberAremSn27-Jan-12 5:19 
    GeneralToolTip problem in &quot;New&quot; or &quot;Open&quot;memberkiukeluke21-Feb-05 5:31 
    GeneralRe: ToolTip problem in &quot;New&quot; or &quot;Open&quot;memberDayDayDayu19-Apr-05 14:38 
    QuestionHow to click row data Seperately?memberpubududilena3-Nov-04 17:01 
    Questionthe green line?memberMike200221-May-04 6:03 
    AnswerRe: the green line?memberDayDayDayu19-Apr-05 2:58 
    GeneralRe: the green line?memberDayDayDayu19-Apr-05 16:40 
    AnswerRe: the green line?memberTransaxle23-Feb-07 7:07 
    GeneralExcellent job!memberAllenwei26-Dec-02 20:43 
    GeneralOk, Cool !memberBehzad Ebrahimi3-Dec-02 0:53 
    GeneralIs this only for SDI projectsmemberJose Cruz14-Oct-02 10:38 
    GeneralRe: Is this only for SDI projectssussAnonymous16-Oct-02 3:29 
    GeneralDear Normmembermohammadsh5-Oct-02 18:46 
    GeneralNicememberJon Sagara26-Sep-01 21:49 
    QuestionHow to implement a line graph using MFCmemberKeegan13-Aug-01 5:28 
    AnswerRe: How to implement a line graph using MFCmemberNorm Almond18-Sep-01 22:18 
    AnswerRe: How to implement a line graph using MFCmembershani_pk6-Sep-04 11:06 
    AnswerRe: How to implement a line graph using MFCmembervikas4117911-Aug-05 1:31 
    AnswerHow to implement a graph(Gaussian Curve) using MFCmemberRitesh Karkele24-Aug-05 19:03 
    GeneralDoesnt work on docking window tab ctrl !membervincent leong10-Jul-01 17:08 
    GeneralProblem first time I use it.memberErich J. Ruth23-Feb-01 14:30 
    GeneralUpdate ItemmemberDarren Schroeder11-Nov-00 4:22 
    GeneralRe: Update ItemmemberDaniel Madden13-Nov-00 18:21 
    GeneralProblem...memberJoseph Dempsey9-Nov-00 15:32 
    GeneralRe: Problem...memberNorm Almond9-Nov-00 21:28 
    GeneralAsk, and you shall receive!memberDaniel Madden8-Nov-00 6:45 

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

    Permalink | Advertise | Privacy | Mobile
    Web01 | 2.6.130617.1 | Last Updated 10 Nov 2000
    Article Copyright 2000 by Norm .droid
    Everything else Copyright © CodeProject, 1999-2013
    Terms of Use
    Layout: fixed | fluid