How to Clear in Visual C++

This is a discussion on How to Clear in Visual C++ within the Windows Programming forums, part of the Platform Specific Boards category; Hello. I am doing a project on Visual C++ 6.0 and I have most of it completed. What I would ...

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

    Question How to Clear in Visual C++

    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
    People Love Me
    Join Date
    Jan 2003
    Posts
    412
    The easiest, but most evil way is found is <cstdlib> and is system('cls").

    This question is answered in the FAQ btw.

  3. #3
    Registered User mrafcho001's Avatar
    Join Date
    Jan 2005
    Posts
    483
    search for "CLS" in the FAQ. They have a several ways there.

  4. #4
    and the hat of wrongness Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    32,659
    Since you're writing a GUI program, you'll be needing a GUI answer.
    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.
    I support http://www.ukip.org/ as the first necessary step to a free Europe.

  5. #5
    Registered User Bajanine's Avatar
    Join Date
    Dec 2001
    Location
    The most peaks over 10,000 feet!
    Posts
    396

    SetWindowText

    In you handler when the user presses 'clear' why not use 'SetWindowText' with a NULL parameter, this should clear the data.

    Code:
    SetWindowText (handle, NULL);
    Favorite Quote:

    >For that reason someone invented C++.
    BLASPHEMY! Begone from my C board, you foul lover of objects, before the gods of C cast you into the void as punishment for your weakness! There is no penance for saying such things in my presence. You are henceforth excommunicated. Never return to this house, filthy heretic!



Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Problem Compiling Program
    By wco5002 in forum C++ Programming
    Replies: 13
    Last Post: 11-06-2007, 11:56 AM
  2. Visual Studio Express for free
    By Frobozz in forum C# Programming
    Replies: 2
    Last Post: 04-29-2006, 09:59 PM
  3. What's wrong with this code??
    By Xanth in forum C Programming
    Replies: 11
    Last Post: 12-23-2004, 01:41 PM
  4. MS Visual C++ 6 wont include vector.h in a header file
    By bardsley99 in forum C++ Programming
    Replies: 9
    Last Post: 11-06-2003, 11:05 AM
  5. odd errors from msvc std library files
    By blight2c in forum C++ Programming
    Replies: 6
    Last Post: 04-30-2002, 12:06 AM

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21