《第十五周实验报告任务1——窗口程序设计及MFC 启蒙》
来源:互联网 发布:amd怎么优化游戏 编辑:程序博客网 时间:2024/05/02 04:43
/* (程序头部注释开始)
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生
* All rights reserved.
* 文件名称: 《窗口程序设计及MFC 启蒙》
* 作 者: 刘江波
* 完成日期: 2012 年 5 月 26 日
* 版 本 号: v.05261
* 对任务及求解方法的描述部分
* 问题描述:
在《窗口程序设计及MFC 启蒙》一文案例的基础上,为应用程序增加求周长的功能。在报告
中展示主要的代码(至少包括自己定义的代码和包含通过在界面上设置产生的代码——理解文中“进
一步的回味”部分。),以及两张用不同输入得到的运行结果的截图。
* 程序头部的注释结束
*/
MyTriangle.h
class Triangle{public:Triangle(){a=1;b=1;c=1;}Triangle(double x, double y, double z) {a=x; b=y; c=z;}double area(void);double perimeter(void);private:double a,b,c;};
MyTriangle.cpp
#include "stdafx.h"#include <Cmath>#include "MyTriangle.h"double Triangle::area(void){ double s =(a + b + c) / 2; return sqrt(s * (s - a) * (s - b) * (s - c));}double Triangle::perimeter(void){ double z = (a + b + c); return z;}
TriangleDlg.h
// TriangleDlg.h : 头文件//#pragma once// CTriangleDlg 对话框class CTriangleDlg : public CDialogEx{// 构造public:CTriangleDlg(CWnd* pParent = NULL);// 标准构造函数// 对话框数据enum { IDD = IDD_TRIANGLE_DIALOG };protected:virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持// 实现protected:HICON m_hIcon;// 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:double m_a;double m_b;double m_c;double m_area;double m_perimeter;afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedButton2();};
TriangleDlg.cpp
// TriangleDlg.cpp : 实现文件//#include "stdafx.h"#include "Triangle.h"#include "TriangleDlg.h"#include "afxdialogex.h"#include"MyTriangle.h"#ifdef _DEBUG#define new DEBUG_NEW#endif// 用于应用程序“关于”菜单项的 CAboutDlg 对话框class CAboutDlg : public CDialogEx{public:CAboutDlg();// 对话框数据enum { IDD = IDD_ABOUTBOX };protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持// 实现protected:DECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD){}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pDX);}BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)END_MESSAGE_MAP()// CTriangleDlg 对话框CTriangleDlg::CTriangleDlg(CWnd* pParent /*=NULL*/): CDialogEx(CTriangleDlg::IDD, pParent), m_a(0), m_b(0), m_c(0), m_area(0), m_perimeter(0){m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CTriangleDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pDX);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_area);DDX_Text(pDX, IDC_EDIT5, m_perimeter);}BEGIN_MESSAGE_MAP(CTriangleDlg, CDialogEx)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, &CTriangleDlg::OnBnClickedButton1)ON_BN_CLICKED(IDC_BUTTON2, &CTriangleDlg::OnBnClickedButton2)END_MESSAGE_MAP()// CTriangleDlg 消息处理程序BOOL CTriangleDlg::OnInitDialog(){CDialogEx::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABOUTBOX 必须在系统命令范围内。ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){BOOL bNameValid;CString strAboutMenu;bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);ASSERT(bNameValid);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动// 执行此操作SetIcon(m_hIcon, TRUE);// 设置大图标SetIcon(m_hIcon, FALSE);// 设置小图标// TODO: 在此添加额外的初始化代码return TRUE; // 除非将焦点设置到控件,否则返回 TRUE}void CTriangleDlg::OnSysCommand(UINT nID, LPARAM lParam){if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialogEx::OnSysCommand(nID, lParam);}}// 如果向对话框添加最小化按钮,则需要下面的代码// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,// 这将由框架自动完成。void CTriangleDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中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;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();}}//当用户拖动最小化窗口时系统调用此函数取得光标//显示。HCURSOR CTriangleDlg::OnQueryDragIcon(){return static_cast<HCURSOR>(m_hIcon);}void CTriangleDlg::OnBnClickedButton1(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(); //将把界面上各控件输入的值“捕获”到与之关联的变量中 Triangle t1(m_a,m_b,m_c); //定义三角形对象 m_area=t1.area(); //求面积 UpdateData(FALSE); //用m_area的值更新界面上对应的控件的值并实现显示}void CTriangleDlg::OnBnClickedButton2(){ // TODO: 在此添加控件通知处理程序代码 UpdateData(); //将把界面上各控件输入的值“捕获”到与之关联的变量中 Triangle t1(m_a,m_b,m_c); //定义三角形对象 m_perimeter=t1.perimeter(); //求周长 UpdateData(FALSE); //用m_perimeter的值更新界面上对应的控件的值并实现显示
感悟:窗口的界面也不过尔尔,没有什么太过神秘的。
- 《第十五周实验报告任务1——窗口程序设计及MFC 启蒙》
- 第十五周实验--任务1--《窗口程序设计及MFC启蒙》--为应用程序增加求周长的功能
- 《第十五周实验报告1-1》---在《窗口程序设计及MFC 启蒙》一文案例的基础上,为应用程序增加求周长的功能
- 第十五实验报告一在《窗口程序设计及MFC 启蒙》一文案例的基础上,为应用程序增加求周长的功能
- 窗口程序设计及MFC启蒙
- 第十五周实验报告(任务一)【窗口程序设计之三角形类】
- C++程序设计实验报告(七十五)---第十五周任务一
- C++程序设计实验报告(七十六)---第十五周任务二
- 第十五周实验报告任务1
- 第十五周实验报告任务1
- 《第十五周实验报告任务2——分数计算器》
- 《第十五周实验报告任务3.2——格式输出》
- C++程序设计实验报告(七十七)---第十五周任务三(3-1)
- 第十五周实验报告(任务一)
- 第十五周实验报告(任务二)
- 第十五周实验报告(任务三)
- 第十五周实验报告 任务二
- 第十五周实验报告 任务一
- Flyweight模式
- 黑马程序员_重载~
- Android数据格式解析对象JSON用法
- ios 创建标题栏UINavigationBar
- 【学习Android遇到的错误】import 的时候出现“no projects are found to import”
- 《第十五周实验报告任务1——窗口程序设计及MFC 启蒙》
- 通过给rownum起别名来实现where rownum>的查询
- 人生十二伴
- android之Bundle
- setsockopt
- 2012-04-14 C#基础学习笔记(11)
- linux下用rpm 安装jdk
- Java之extends implement
- hibernate批量处理数据