程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 窗口程序體驗(求三角形面積)

窗口程序體驗(求三角形面積)

編輯:C++入門知識

[cpp] 
求三角形面積 

求三角形面積[cpp] view plaincopyprint?
// xxxxDlg.cpp : implementation file  
//  
 
#include "stdafx.h"  
#include "xxxx.h"  
#include "xxxxDlg.h"  
#include "Cmath"  
 
#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() 
 
/////////////////////////////////////////////////////////////////////////////  
// CXxxxDlg dialog  
 
CXxxxDlg::CXxxxDlg(CWnd* pParent /*=NULL*/) 
    : CDialog(CXxxxDlg::IDD, pParent) 

    //{{AFX_DATA_INIT(CXxxxDlg)  
    m_a = 0.0; 
    m_b = 0.0; 
    m_c = 0.0; 
    m_s = 0.0; 
    //}}AFX_DATA_INIT  
    // Note that LoadIcon does not require a subsequent DestroyIcon in Win32  
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 

 
void CXxxxDlg::DoDataExchange(CDataExchange* pDX) 

    CDialog::DoDataExchange(pDX); 
    //{{AFX_DATA_MAP(CXxxxDlg)  
    DDX_Text(pDX, IDC_EDIT1, m_a); 
    DDX_Text(pDX, IDC_EDIT2, m_b); 
    DDX_Text(pDX, IDC_EDIT3, m_c); 
    DDX_Text(pDX, IDC_EDIT4, m_s); 
    //}}AFX_DATA_MAP  

 
BEGIN_MESSAGE_MAP(CXxxxDlg, CDialog) 
    //{{AFX_MSG_MAP(CXxxxDlg)  
    ON_WM_SYSCOMMAND() 
    ON_WM_PAINT() 
    ON_WM_QUERYDRAGICON() 
    ON_BN_CLICKED(IDC_BUTTON1, OnButton1) 
    //}}AFX_MSG_MAP  
END_MESSAGE_MAP() 
 
/////////////////////////////////////////////////////////////////////////////  
// CXxxxDlg message handlers  
 
BOOL CXxxxDlg::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  
     
    return TRUE;  // return TRUE  unless you set the focus to a control  

 
void CXxxxDlg::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 CXxxxDlg::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 CXxxxDlg::OnQueryDragIcon() 

    return (HCURSOR) m_hIcon; 

 
void CXxxxDlg::OnButton1()  

    // TODO: Add your control notification handler code here  
    UpdateData(); 
    double m_l; 
    if((m_a+m_b)<m_c||(m_a+m_c)<m_b||(m_c+m_b)<m_a) 
        MessageBox("三角形不存在"); 
    else{ 
        m_l=(m_a+m_b+m_c)*1/2; 
        m_s=sqrt(m_l*(m_l-m_a)*(m_l-m_b)*(m_l-m_c));     
        UpdateData(FALSE); 
    } 

// xxxxDlg.cpp : implementation file
//

#include "stdafx.h"
#include "xxxx.h"
#include "xxxxDlg.h"
#include "Cmath"

#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()

/////////////////////////////////////////////////////////////////////////////
// CXxxxDlg dialog

CXxxxDlg::CXxxxDlg(CWnd* pParent /*=NULL*/)
 : CDialog(CXxxxDlg::IDD, pParent)
{
 //{{AFX_DATA_INIT(CXxxxDlg)
 m_a = 0.0;
 m_b = 0.0;
 m_c = 0.0;
 m_s = 0.0;
 //}}AFX_DATA_INIT
 // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CXxxxDlg::DoDataExchange(CDataExchange* pDX)
{
 CDialog::DoDataExchange(pDX);
 //{{AFX_DATA_MAP(CXxxxDlg)
 DDX_Text(pDX, IDC_EDIT1, m_a);
 DDX_Text(pDX, IDC_EDIT2, m_b);
 DDX_Text(pDX, IDC_EDIT3, m_c);
 DDX_Text(pDX, IDC_EDIT4, m_s);
 //}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CXxxxDlg, CDialog)
 //{{AFX_MSG_MAP(CXxxxDlg)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_QUERYDRAGICON()
 ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
 //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CXxxxDlg message handlers

BOOL CXxxxDlg::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
 
 return TRUE;  // return TRUE  unless you set the focus to a control
}

void CXxxxDlg::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 CXxxxDlg::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 CXxxxDlg::OnQueryDragIcon()
{
 return (HCURSOR) m_hIcon;
}

void CXxxxDlg::OnButton1()
{
 // TODO: Add your control notification handler code here
 UpdateData();
 double m_l;
 if((m_a+m_b)<m_c||(m_a+m_c)<m_b||(m_c+m_b)<m_a)
  MessageBox("三角形不存在");
 else{
  m_l=(m_a+m_b+m_c)*1/2;
  m_s=sqrt(m_l*(m_l-m_a)*(m_l-m_b)*(m_l-m_c));   
  UpdateData(FALSE);
 }
}

 

 

 

 

\\

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved