资源描述
一. 文本.图形处理
前景与后景的设计
void CLsdView::OnDraw(CDC* pDC)
{
CLsdDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
RECT rect;
GetClientRect(&rect);
CBrush brush(RGB(207,250,5));
pDC->FillRect(&rect,&brush);
}
绘制线.矩形.圆
依此编辑矩形,圆ID分别为ID_RECTANGLE,ID_ELLIPSE
在其二者中中间加上分隔符
(暂时先把计算器给编辑ID为ID_DIALOG1)
如图操作分别选中ID_LINE,ID_ELLIPSE,点击Add Function,在点击Edit Code,编辑其中的以下程序:
void CLsdView::OnLine()
{
// TODO: Add your command handler code here
CClientDC dc(this);
dc.MoveTo(10,30);
dc.LineTo(250,30);
}
void CLsdView::OnRectangle()
{
// TODO: Add your command handler code here
CClientDC dc(this);
CBrush*BrushOld,BrushNew;
BrushNew.CreateSolidBrush(RGB(250,120,55));
BrushOld=dc.SelectObject(&BrushNew);
dc.Rectangle(60,60,250,200);
dc.SelectObject(BrushOld);
BrushNew.DeleteObject();
}
void CLsdView::OnEllipse()
{
// TODO: Add your command handler code here
CClientDC dc(this);
CBrush*BrushOld,BrushNew;
BrushNew.CreateSolidBrush(RGB(20,120,255));
BrushOld=dc.SelectObject(&BrushNew);
dc.Ellipse(350,255,255,350);
dc.SelectObject(BrushOld);
BrushNew.DeleteObject();
}
二. 菜单工具栏状态栏设计
分别画出学号,班级,清空,其ID分别为ID_XUEHAO,ID_CLASS,
ID_DELETE
如图操作分别选中ID_XUEHAO,ID_CLASS,ID_DELETE, 点击Add Function,在点击Edit Code,编辑以下程序
void CLsdView::OnName()
{
// TODO: Add your command handler code here
CClientDC dc(this);
dc.TextOut(0,0,"姓名:李思东");
}
void CLsdView::OnXuehao()
{
// TODO: Add your command handler code here
CClientDC dc(this);
dc.TextOut(120,0,"学号:200606060125");
}
void CLsdView::OnClass()
{
// TODO: Add your command handler code here
CClientDC dc(this);
dc.TextOut(290,0,"班级:06自动化");
}
void CLsdView::OnDelete()
{
// TODO: Add your command handler code here
Invalidate();
}
还要选中WM_CLOSE, 点击Add Function,在点击Edit Code,编辑以下程序
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CTime time;
time=CTime::GetCurrentTime();
CString s=time.Format("%H: %M: %S");
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_INDICATOR_CLOCK),s);
CFrameWnd::OnTimer(nIDEvent);
}
void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
KillTimer(1);
CFrameWnd::OnClose();
}
三. 计算器对话框设计
如图编辑“减”“乘”“除”按钮的ID依此为IDC_MINUS_BUTON,ID_TIMES_BUTTON,ID_DIVIDE_BUTTON,静态文本分别改写成“输入数据1”“输入数据2”“计算结果”,编辑框ID分别为ID_EDIT1,ID_EDIT2,ID_EDIT3,将对话属性打开改写Caption内容为“计算器”,在双击空白处,建立个新的类为“lisidong”
IDC_Edit1,IDC_Edit2类似,分别修改表格中内容Member variable name:m_Edit1;Category:Control;Variable Type:Cedit,但是m_Edit3中的Category:Value;Variable type:Cstring.
如图操作,点击Add Function,在点击Edit Code,编写程序
void CLsdView::OnDialog1()
{
// TODO: Add your command handler code here
lisidong dlg;
dlg.DoModal();
}
如图操作分别选中IDC_MINUS_BUTTON,IDC_TIMES_BUTTON,IDC_DIVIDE_BUTTON,点击Add Function,在点击Edit Code,编辑以下程序:
void lisidong::OnAddButton()
{
// TODO: Add your control notification handler code here
char cEdit1[10],cEdit2[10];
double dEdit1,dEdit2,dEdit3;
char cResult[10];
m_Edit1.GetWindowText(cEdit1,10);
m_Edit2.GetWindowText(cEdit2,10);
dEdit1=atof((LPCTSTR)cEdit1);
dEdit2=atof((LPCTSTR)cEdit2);
dEdit3=dEdit1+dEdit2;
_gcvt(dEdit3,10,cResult);
m_Edit3=(LPCTSTR)cResult;
UpdateData(FALSE);
}
void lisidong::OnMinusButton()
{
// TODO: Add your control notification handler code here
char cEdit1[10],cEdit2[10];
double dEdit1,dEdit2,dEdit3;
char cResult[10];
m_Edit1.GetWindowText(cEdit1,10);
m_Edit2.GetWindowText(cEdit2,10);
dEdit1=atof((LPCTSTR)cEdit1);
dEdit2=atof((LPCTSTR)cEdit2);
dEdit3=dEdit1-dEdit2;
_gcvt(dEdit3,10,cResult);
m_Edit3=(LPCTSTR)cResult;
UpdateData(FALSE);
}
void lisidong::OnTimesButton()
{
// TODO: Add your control notification handler code here
char cEdit1[10],cEdit2[10];
double dEdit1,dEdit2,dEdit3;
char cResult[10];
m_Edit1.GetWindowText(cEdit1,10);
m_Edit2.GetWindowText(cEdit2,10);
dEdit1=atof((LPCTSTR)cEdit1);
dEdit2=atof((LPCTSTR)cEdit2);
dEdit3=dEdit1*dEdit2;
_gcvt(dEdit3,10,cResult);
m_Edit3=(LPCTSTR)cResult;
UpdateData(FALSE);
}
void lisidong::OnDivideButton()
{
// TODO: Add your control notification handler code here
char cEdit1[10],cEdit2[10];
double dEdit1,dEdit2,dEdit3;
char cResult[10];
m_Edit1.GetWindowText(cEdit1,10);
m_Edit2.GetWindowText(cEdit2,10);
dEdit1=atof((LPCTSTR)cEdit1);
dEdit2=atof((LPCTSTR)cEdit2);
dEdit3=dEdit1/dEdit2;
_gcvt(dEdit3,10,cResult);
m_Edit3=(LPCTSTR)cResult;
UpdateData(FALSE);
}
四. 设计心得
1. 整个过程都是来源于书本在加上平时的多加练习与融会贯通。
2. Visual C++的学习不能对书本太过于执着要想学好必须要多多练习,与此同时也要少许的脱离下课本异想天开,充分的发挥才能,这样才能学好该科目。
3. 一道题目有多种程序,所以不能在一棵上吊死,要一题多解。例如:计算器程序设计就有很多种,本人只用了其中的一种。
展开阅读全文