基于对话框的等腰三角形显示.docx
- 文档编号:1424728
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:13
- 大小:307.25KB
基于对话框的等腰三角形显示.docx
《基于对话框的等腰三角形显示.docx》由会员分享,可在线阅读,更多相关《基于对话框的等腰三角形显示.docx(13页珍藏版)》请在冰豆网上搜索。
基于对话框的等腰三角形显示
目录
一、课程设计说明……………………………6
二、设计目的简介……………………………7
三、设计主要方案及理论介绍………………7
四、设计主要步骤……………………………8
五、程序源代码………………………………9
六、运行结果…………………………………16
七、设计评述及体会…………………………17
八、参考文献…………………………………18
一、课程设计说明
VisualC++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。
VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。
VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。
这些组件通过一个名为DeveloperStudio的组件集成为和谐的开发环境。
本课程设计中应用的是VisualC++6.0中三个主要的部分之一的MFC来编程实现对计算机系统信息的获取。
MFC是WinAPI与C++的结合,MFC是微软封装了的API。
windows作为一个提供功能强大的应用程序接口编程的操作系统,的确方便了许多程序员,传统的win32开发(直接使用windows的接口函数API)对于程序员来说非常的困难,因为,API函数实在太多了,而且名称很乱,从零构架一个窗口动辄就是上百行的代码。
MFC是面向对象程序设计与Applicationframework的完美结合,他将传统的API进行了分类封装,并且为你创建了程序的一般框架,MFC是对WindowsAPI的封装,大大简化了我们的工作。
通过学习和上机实践及在老师的指导下,学习并初步掌握使用vc++开发环境进行编程。
学会口令对话框的制作和实现,学会应用VC++库函数实现语音文件的播放、暂停等功能。
在计算机信息技术普及的时代,掌握一门高级编程语言是很重要的。
二、设计目的简介
(1)掌握VC++程序开发平台;
(2)掌握对话框模式的可视化实现和消息响应;
(3)掌握对话框的制作和实现;
(4)掌握应用VC++库函数实现数据的生成、动态显示及参数动态改变等功能。
三、设计主要方案及理论介绍
二人进行分工合作各个击破,各自实现不同的功能,完成不同的分工。
二人共同负责对话框的制作以及相应的响应函数,一人实现三角形及坐标轴显示;一人负责实现输出三角形周长和面积数值的功能;最后二人进行整体的完善工作,最终完成设计任务。
使用应用程序开发向导(AppWizard)创建基于MFC的Windows应有程序框架,根据要建立的应用程序的需要,在每一步设置不同的选项,得到开发应用程序的基本文件,然后利用类向导,来实现应用程序的具体功能。
具体操作步骤有:
创建对话框工程、添加对话框模板、设置对话框模板属性;创建对话框类,编写相关按钮响应函数,初始化对话框类,编译并运行程序。
四、设计主要步骤
1、学习VC有关编程方法及VC++程序开发平台;
2、设计主对话框界面;
3、编写添加按钮事件响应函数;
4.设计三角形数据输出函数
5、编译并运行程序。
6、撰写课程设计报告。
五、程序源代码
对话框:
//TriangleDlg.cpp:
实现文件
//
#include"stdafx.h"
#include"Triangle.h"
#include"TriangleDlg.h"
#include"math.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#endif
//用于应用程序“关于”菜单项的CAboutDlg对话框
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//对话框数据
enum{IDD=IDD_ABOUTBOX};
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持
//实现
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
END_MESSAGE_MAP()
//CTriangleDlg对话框
CTriangleDlg:
:
CTriangleDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CTriangleDlg:
:
IDD,pParent)
m_w(0)
m_y(0)
m_area(0)
m_round(0)
m_g(0)
m_d(0)
{
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCTriangleDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
DDX_Text(pDX,IDC_EDIT1,m_w);
DDX_Text(pDX,IDC_EDIT2,m_y);
DDX_Text(pDX,IDC_EDIT3,m_area);
DDX_Text(pDX,IDC_EDIT4,m_round);
DDX_Text(pDX,IDC_EDIT5,m_g);
DDX_Text(pDX,IDC_EDIT6,m_d);
}
BEGIN_MESSAGE_MAP(CTriangleDlg,CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON1,&CTriangleDlg:
:
OnBnClickedButton1)
END_MESSAGE_MAP()
//CTriangleDlg消息处理程序
BOOLCTriangleDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//将“关于...”菜单项添加到系统菜单中。
//IDM_ABOUTBOX必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//设置此对话框的图标。
当应用程序主窗口不是对话框时,框架将自动
//执行此操作
SetIcon(m_hIcon,TRUE);//设置大图标
SetIcon(m_hIcon,FALSE);//设置小图标
//TODO:
在此添加额外的初始化代码
returnTRUE;//除非将焦点设置到控件,否则返回TRUE
}
voidCTriangleDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//如果向对话框添加最小化按钮,则需要下面的代码
//来绘制该图标。
对于使用文档/视图模型的MFC应用程序,
//这将由框架自动完成。
坐标轴绘制源代码:
voidCTriangleDlg:
:
OnPaint()
{
CPaintDCdc(this);
CRectrect;
GetClientRect(&rect);
intN=20;
intnWidth=rect.Width();
intnHeight=rect.Height()+30;
dc.SetViewportOrg(nWidth/4+50,nHeight/2);
dc.SetTextAlign(TA_CENTER|TA_BOTTOM);
dc.SetBkMode(TRANSPARENT);
CPenpen(0,1,RGB(0,0,255));
CPen*pOldPen=dc.SelectObject(&pen);
dc.MoveTo(-nWidth/4,0);//x
dc.LineTo(nWidth/4,0);
dc.MoveTo(0,nHeight/2);//y
dc.LineTo(0,-nHeight/2+30);
for(inti=1;i<8;i++)
{
//xy+箭头
dc.MoveTo(i/2,-nHeight/2+i+30);
dc.LineTo(-i/2,-nHeight/2+i+30);
dc.MoveTo(nWidth/4-i,i/2);
dc.LineTo(nWidth/4-i,-i/2);
}
for(inti=N;i { //x+刻度及数字 dc.MoveTo(i,0); dc.LineTo(i,5); CStringstring; string.Format(_T("%d"),(i/N)); dc.TextOutW(i,20,string); } for(inti=N;i { //y-刻度及数字 dc.MoveTo(0,i); dc.LineTo(-5,i); CStringstring; string.Format(_T("-%d"),(i/N)); dc.TextOutW(12,i+8,string); } for(inti=-N;i>-nWidth/4;i-=N) { //x-刻度及数字 dc.MoveTo(i,0); dc.LineTo(i,5); CStringstring; string.Format(_T("-%d"),(i/N)); dc.TextOutW(i,20,s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 对话框 等腰三角形 显示