Thread: How to Clear in Visual C++ 6.0

  1. #1
    Registered User
    Join Date
    Feb 2005
    Posts
    19

    Question How to Clear in Visual C++ 6.0

    Hello.

    I am doing a project on Visual C++ 6.0 and I have most of it completed. What I would like to do is have a button named "Clear". I have to buttons... one is "Clear" and the other is "Cancel". I would like to be able to press the button named "Clear" and it will clear all of my data so I can input new numbers. Can someone please help me with this part?

    Here is my code...

    Code:
    // Proj2Dlg.cpp : implementation file
    //
    
    #include "stdafx.h"
    #include "Proj2.h"
    #include "Proj2Dlg.h"
    #include "math.h"
    
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
    
    /////////////////////////////////////////////////////////////////////////////
    // CAboutDlg dialog used for App About
    
    class CAboutDlg : public CDialog
    {
    public:
    	CAboutDlg();
    
    // Dialog Data
    	//{{AFX_DATA(CAboutDlg)
    	enum { IDD = IDD_ABOUTBOX };
    	//}}AFX_DATA
    
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(CAboutDlg)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
    	//}}AFX_VIRTUAL
    
    // Implementation
    protected:
    	//{{AFX_MSG(CAboutDlg)
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };
    
    CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
    {
    	//{{AFX_DATA_INIT(CAboutDlg)
    	//}}AFX_DATA_INIT
    }
    
    void CAboutDlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CAboutDlg)
    	//}}AFX_DATA_MAP
    }
    
    BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
    	//{{AFX_MSG_MAP(CAboutDlg)
    		// No message handlers
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    /////////////////////////////////////////////////////////////////////////////
    // CProj2Dlg dialog
    
    CProj2Dlg::CProj2Dlg(CWnd* pParent /*=NULL*/)
    	: CDialog(CProj2Dlg::IDD, pParent)
    {
    	//{{AFX_DATA_INIT(CProj2Dlg)
    	m_u1 = 0.0;
    	m_u2 = 0.0;
    	m_tc = 0.0;
    	m_time = 0.0;
    	m_res = 0.0;
    	m_step = 0.0;
    	m_display = _T("");
    	//}}AFX_DATA_INIT
    	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
    	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
    }
    
    void CProj2Dlg::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	//{{AFX_DATA_MAP(CProj2Dlg)
    	DDX_Text(pDX, IDC_EDT_U1, m_u1);
    	DDX_Text(pDX, IDC_EDT_U2, m_u2);
    	DDX_Text(pDX, IDC_EDT_TC, m_tc);
    	DDX_Text(pDX, IDC_EDT_TIME, m_time);
    	DDX_Text(pDX, IDC_EDT_RES, m_res);
    	DDX_Text(pDX, IDC_EDT_STEP, m_step);
    	DDX_Text(pDX, IDC_DISPLAY, m_display);
    	//}}AFX_DATA_MAP
    }
    
    BEGIN_MESSAGE_MAP(CProj2Dlg, CDialog)
    	//{{AFX_MSG_MAP(CProj2Dlg)
    	ON_WM_SYSCOMMAND()
    	ON_WM_PAINT()
    	ON_WM_QUERYDRAGICON()
    	ON_BN_CLICKED(IDC_BTN_CANCEL, OnBtnCancel)
    	ON_BN_CLICKED(IDC_DISPLAY, OnDisplay)
    	ON_BN_CLICKED(IDC_CALCNGRAPH, OnCalcngraph)
    	ON_BN_CLICKED(IDC_CALC, OnCalc)
    	ON_BN_CLICKED(IDC_BTN_CLR, OnBtnClr)
    	//}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    
    /////////////////////////////////////////////////////////////////////////////
    // CProj2Dlg message handlers
    
    BOOL CProj2Dlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	// Add "About..." menu item to system menu.
    
    	// IDM_ABOUTBOX must be in the system command range.
    	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    	ASSERT(IDM_ABOUTBOX < 0xF000);
    
    	CMenu* pSysMenu = GetSystemMenu(FALSE);
    	if (pSysMenu != NULL)
    	{
    		CString strAboutMenu;
    		strAboutMenu.LoadString(IDS_ABOUTBOX);
    		if (!strAboutMenu.IsEmpty())
    		{
    			pSysMenu->AppendMenu(MF_SEPARATOR);
    			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    		}
    	}
    
    	// Set the icon for this dialog.  The framework does this automatically
    	//  when the application's main window is not a dialog
    	SetIcon(m_hIcon, TRUE);			// Set big icon
    	SetIcon(m_hIcon, FALSE);		// Set small icon
    	
    	// TODO: Add extra initialization here
    	m_u1 = 0.0;
    	m_u2 = 0.0;
    	m_tc = 0.0;
    	m_time = 0.0;
    	m_res = 0.0;
    	m_step = 0.0;
    	UpdateData(FALSE);
    
    	return TRUE;  // return TRUE  unless you set the focus to a control
    }
    
    void CProj2Dlg::OnSysCommand(UINT nID, LPARAM lParam)
    {
    	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
    	{
    		CAboutDlg dlgAbout;
    		dlgAbout.DoModal();
    	}
    	else
    	{
    		CDialog::OnSysCommand(nID, lParam);
    	}
    }
    
    // If you add a minimize button to your dialog, you will need the code below
    //  to draw the icon.  For MFC applications using the document/view model,
    //  this is automatically done for you by the framework.
    
    void CProj2Dlg::OnPaint() 
    {
    	if (IsIconic())
    	{
    		CPaintDC dc(this); // device context for painting
    
    		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
    
    		// Center icon in client rectangle
    		int cxIcon = GetSystemMetrics(SM_CXICON);
    		int cyIcon = GetSystemMetrics(SM_CYICON);
    		CRect rect;
    		GetClientRect(&rect);
    		int x = (rect.Width() - cxIcon + 1) / 2;
    		int y = (rect.Height() - cyIcon + 1) / 2;
    
    		// Draw the icon
    		dc.DrawIcon(x, y, m_hIcon);
    	}
    	else
    	{
    		CDialog::OnPaint();
    	}
    }
    
    // The system calls this to obtain the cursor to display while the user drags
    //  the minimized window.
    HCURSOR CProj2Dlg::OnQueryDragIcon()
    {
    	return (HCURSOR) m_hIcon;
    }
    
    void CProj2Dlg::OnBtnCancel() 
    {
    	// TODO: Add your control notification handler code here
    	OnCancel();
    }
    
    void CProj2Dlg::OnCalcngraph() 
    {
    	// TODO: Add your control notification handler code here
    	UpdateData(TRUE);
    	m_display = "You have selected to view both the calucations and the graph!";
    	UpdateData(FALSE);
    	
    	CClientDC dc(this); // this is a class name
    	
    	CPen pen(PS_SOLID, 2, RGB(255, 0, 0));  // call another function - pen thickness
    	CPen* ppen = dc.SelectObject(&pen);
    
    	int x0 = 50;
    	int y0 = 250;
    	int length = 300;
    	int height = 100;
    	
    	
    	dc.Rectangle(x0, y0, x0 + length, y0 + height);
    	
    
    	
    	double n = 5 * m_tc / m_step; // step is each incriminant of time
    	double t;
    	
    	int x1;
    	int y1;
    
    
    	
    	dc.MoveTo(x0, y0 + height);
    
    
    	for (int i = 0; i <= n; i++)
    	{
    		t = i * m_step;
    		m_res=m_u1 + (m_u2 - m_u1) * (1-exp(-t / (m_tc))); // change m_time to t because I am receiving a step from keyboard
    
    		x1 = x0 + t / (5 * m_tc) * length; // add  the time to x0
    		y1 = (y0 + height)- m_res / (m_u2 - m_u1) * height;
    
    	// m_res=m_u1 + (m_u2 - m_u1) * (1-exp(-m_time / (m_tc))); // calculation for 1 t
    		
    		dc.LineTo(x1, y1);
    		
    		Sleep((int) (m_step * 1000));
    	}
    
    
    	UpdateData(FALSE);
    }
    
    
    void CProj2Dlg::OnCalc()  
    {
    	// TODO: Add your control notification handler code here
    	UpdateData(TRUE);
    	m_display = "You have selected to view only the calucations!";
    	UpdateData(FALSE);
    
    	double n = 5 * m_tc / m_step; // step is each incriminant of time
    	double t;
    	
    	for (int i = 0; i <= n; i++)
    	{
    		t = i * m_step;
    		
    		m_res=m_u1 + (m_u2 - m_u1) * (1-exp(-t / (m_tc))); // change m_time to t because I am receiving a step from keyboard
    
    	}
    
    
    	UpdateData(FALSE);
    
    }
    
    void CProj2Dlg::OnBtnClr()
    {
    	// TODO: Add your control notification handler code here
    
    }
    
    void CProj2Dlg::OnDisplay()
    {
    	// TODO: Add your control notification handler code here
    }

  2. #2
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Visual C++ 6.0
    By pythonusr in forum Windows Programming
    Replies: 10
    Last Post: 04-26-2007, 02:13 AM
  2. question about .net to 6.0 change causing errors
    By jverkoey in forum C++ Programming
    Replies: 17
    Last Post: 03-23-2004, 10:45 AM
  3. Visual Studio 6.0 Help
    By L_I_Programmer in forum C++ Programming
    Replies: 1
    Last Post: 03-24-2003, 10:35 PM
  4. Microsoft Visual C++ 6.0 ** Am I missing something?
    By Intimd8r in forum C Programming
    Replies: 9
    Last Post: 05-15-2002, 03:21 AM
  5. <list>
    By Unregistered in forum C++ Programming
    Replies: 9
    Last Post: 02-24-2002, 04:07 PM