Projects > GC Project > GCMainDialog.h

Home | Projects | Links

 

GC PROJECT

  

compilation.h    compilation_defs.h    exp_info.h    GCMainDialog.h    on_apply.h    setaxis.h

Download gc.exe (1.63 MB)        Download VC++ 8.0 Project (54.1 KB RAR Archive)        GC Help


 

#ifndef MAIN_DIALOG

#define MAIN_DIALOG

 

//DECLARATION OF MAIN APPLICATION DIALOG

 

class MainDialog:public CDialog

{

private:

//----------------------------------------------------------------------------------------

    LIST<compilation *> CC_L;                            //LIST OF FUNCTIONS CONTAINER

//----------------------------------------------------------------------------------------

    CMenu GC_MainMenu;                                    //MENU

    HICON GC_Icon;                                            //ICON

 

    CButton * pShiftB, pExpandB;                         //SHIFT & EXPAND RADIO BUTTONS

           

    CButton * pRAB; HICON RA_Icon;  CEdit * pRLE;   //RIGHT ARROW BUTTON, ICON, EDITBOX

    CButton * pLAB; HICON LA_Icon;  CEdit * pLLE;   //LEFT ARROW BUTTON, ICON, EDITBOX

    CButton * pUAB; HICON UA_Icon;  CEdit * pULE;   //UP ARROW BUTTON, ICON, EDITBOX

    CButton * pDAB; HICON DA_Icon;  CEdit * pDLE;   //DOWN ARROW BUTTON, ICON, EDITBOX

 

    CComboBox * GC_FormulaCB;                        //FORMULA COMBO BOX

    CComboBox * GC_ArgCB;                              //ARGUMENT COMBO BOX

   

    CWnd * GC_Grid; CRect GridRect;                   //GRAPH PICTURE BOX

    CWnd * GC_ResS; CRect resRect;                    //RESULT PICTURE BOX

   

    char res_val[50]; ostringstream result_out;      //STREAM (FOR RESULT)

    char astring[50]; ostringstream astream;        //STREAM (FOR ALL OTHER PURPOSES)

   

    CDC memGrid; CBitmap memBitmap;            //GRID MEMORY DC & ASSOCIATED BITMAP

    CDC memRes; CBitmap memResBitmap;       //RESULT MEMORY DC & ASSOCIATED BITMAP

//----------------------------------------------------------------------------------------

    int GridX,GridY;                                  //GRID SIZE [0,GridX],[0,GridY]

   

    double Xup,Xlo,Yup,Ylo;                         //REAL NUMBER LIMITS OF GRID

    double Xmultiplier,Ymultiplier;                 //NUMBER OF SCREEN UNITS IN 1 REAL UNIT   

//----------------------------------------------------------------------------------------

private:

    BOOL OnInitDialog();

 

//CONTROL FUNCTIONS:

 

    afx_msg void OnApply();

    afx_msg void OnPaint();

    afx_msg void OnClearAll();

            afx_msg void OnRemove();

 

    afx_msg void OnRArrow();

    afx_msg void OnLArrow();

    afx_msg void OnUArrow();

    afx_msg void OnDArrow();

    afx_msg void OnZoomIn();

    afx_msg void OnZoomOut();

 

 //Sets axes to default position (-5, 5), (-5,5):

        afx_msg void OnSetDefault(){

        pRLE->SetWindowText(_T("5"));pLLE->SetWindowText(_T("-5"));

        pULE->SetWindowText(_T("5"));  pDLE->SetWindowText(_T("-5"));

        Yup=Xup=5; Ylo=Xlo=-5;

        OnSetShift();

        draw();}

   

//Exit application:

    afx_msg void OnExit(){OnClearAll();SendMessage(WM_CLOSE);}

//Displays About box:

afx_msg void OnAbout(){AboutDialog GC_About(this);GC_About.DoModal();}

//Displays Help:

    afx_msg void OnHelp(){CDialog * GC_Help=new HelpDialog(this); GC_Help->Create(IDD_HELP_DIALOG,this);}

 

//Clears argument List:

    afx_msg void OnClearArgumentList(){

        GC_ArgCB->SetWindowText(_T(""));

        while(GC_ArgCB->GetCount()) GC_ArgCB->DeleteString(0);

        GC_ArgCB->InsertString(0,_T("0"));

        GC_ArgCB->SetCurSel(0);

        do_result();

    }

 

//Sets axes manipulation controls to 'SHIFT' mode:

    afx_msg void OnSetShift(){

        GC_MainMenu.CheckMenuRadioItem(ID_SCALE_SHIFTMODE,ID_SCALE_EXPANDMODE,ID_SCALE_SHIFTMODE,MF_BYCOMMAND);

        this->CheckRadioButton(IDC_SHIFT,IDC_EXPAND,IDC_SHIFT);

    }

 

//Sets axes manipulation controls to 'EXPAND' mode:

    afx_msg void OnSetExpand(){

        GC_MainMenu.CheckMenuRadioItem(ID_SCALE_SHIFTMODE,ID_SCALE_EXPANDMODE,ID_SCALE_EXPANDMODE,MF_BYCOMMAND);

        this->CheckRadioButton(IDC_SHIFT,IDC_EXPAND,IDC_EXPAND);

    }

//----------------------------------------------------------------------------------------

private:

 

//Rescale (zoom) functions:

    int resx(const double & val){return (val-Xlo)*Xmultiplier;}    //   <--RESCALE X

    int resy(const double & val){return (Yup-val)*Ymultiplier;}    //   <--RESCALE Y

 

//Graph drawing functions:

    int gettextlength(double,int);

    void setaxis();

    void draw();

    void do_result();

 

//--------------------------------------------------------------------------------

public:

            MainDialog() : CDialog(IDD_MAIN_DIALOG,NULL),result_out(res_val,50),astream(astring,50){

                        GC_Icon=AfxGetApp()->LoadIcon(IDI_ICON_MAIN);

       

        RA_Icon=AfxGetApp()->LoadIcon(IDI_ICON_R_ARROW);

        LA_Icon=AfxGetApp()->LoadIcon(IDI_ICON_L_ARROW);

        UA_Icon=AfxGetApp()->LoadIcon(IDI_ICON_U_ARROW);

        DA_Icon=AfxGetApp()->LoadIcon(IDI_ICON_D_ARROW);

 

        GC_MainMenu.LoadMenu(IDR_MENU_MAIN);

       }

 

//--------------------------------------------------------------------------------

 

DECLARE_MESSAGE_MAP()

 

};

 

BEGIN_MESSAGE_MAP(MainDialog, CDialog)

    ON_WM_PAINT()

    ON_WM_CREATE()

 

    ON_COMMAND(ID_MAIN_APPLY,OnApply)

    ON_COMMAND(ID_MAIN_CLEARALL,OnClearAll)

    ON_COMMAND(ID_MAIN_CLEARARGUMENTLIST,OnClearArgumentList)

    ON_COMMAND(ID_MAIN_REMOVE,OnRemove)

    ON_COMMAND(ID_MAIN_EXIT, OnExit)

 

    ON_COMMAND(ID_SCALE_SHIFTMODE, OnSetShift)

    ON_COMMAND(ID_SCALE_EXPANDMODE, OnSetExpand)

    ON_COMMAND(ID_SCALE_ZOOMIN,OnZoomIn)

    ON_COMMAND(ID_SCALE_ZOOMOUT,OnZoomOut)

    ON_COMMAND(ID_SCALE_SETDEFAULT,OnSetDefault)

    ON_COMMAND(ID_MOVE_RIGHT,OnRArrow)

    ON_COMMAND(ID_MOVE_LEFT,OnLArrow)

    ON_COMMAND(ID_MOVE_UP,OnUArrow)

    ON_COMMAND(ID_MOVE_DOWN,OnDArrow)

 

   ON_COMMAND(ID_INFO_HELP, OnHelp)

   ON_COMMAND(ID_INFO_ABOUT,OnAbout)

           

    ON_COMMAND(IDC_RAB,OnRArrow)

    ON_COMMAND(IDC_LAB,OnLArrow)

    ON_COMMAND(IDC_UAB,OnUArrow)

    ON_COMMAND(IDC_DAB,OnDArrow)

 

    ON_COMMAND(IDC_SET_DEFAULT_BUTTON,OnSetDefault)

    ON_COMMAND(IDC_APPLY_BUTTON,OnApply)

    ON_COMMAND(IDC_REMOVE_BUTTON,OnRemove)

    ON_COMMAND(IDC_CLEARALL_BUTTON,OnClearAll)

    ON_COMMAND(IDC_CLEARARGUMENTLIST_BUTTON,OnClearArgumentList)

    ON_COMMAND(IDC_EXIT_BUTTON, OnExit)

 

    ON_COMMAND(IDC_ZOOMIN_BUTTON, OnZoomIn)

    ON_COMMAND(IDC_ZOOMOUT_BUTTON, OnZoomOut)

 

    ON_COMMAND(IDC_SHIFT,OnSetShift)

    ON_COMMAND(IDC_EXPAND,OnSetExpand)

   

 

END_MESSAGE_MAP()

 

#include "on_init_dialog.h"

#include "setaxis.h"

#include "draw.h"

#include "do_result.h"

 

#include "moving_functions.h"

#include "on_paint.h"

#include "on_clear_all.h"

#include "on_apply.h"

#include "on_remove.h"

 

#endif

 


compilation.h    compilation_defs.h    exp_info.h    GCMainDialog.h    on_apply.h    setaxis.h

Download gc.exe (1.63 MB)        Download VC++ 8.0 Project (54.1 KB RAR Archive)        GC Help

 

Get WinRAR

 

 

Copyright © Yuri Bulankov 2002

 

Bugs/Comments: code@compilerabuse.com

Copyright (C) 2001-2006 Yuri Bulankov. All rights reserved.