1、 一. 文本.图形处理 前景与后景的设计 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); }
2、 绘制线.矩形.圆 依此编辑矩形,圆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
3、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.D
4、eleteObject(); } 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); BrushNe
5、w.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,
6、"姓名:李思东"); } 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 CLsd
7、View::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();
8、 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(); }
9、三. 计算器对话框设计 如图编辑“减”“乘”“除”按钮的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
10、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
11、 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); dEd
12、it2=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 cRe
13、sult[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() { // TOD
14、O: 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;
15、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
16、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. 一道题目有多种程序,所以不能在一棵上吊死,要一题多解。例如:计算器程序设计就有很多种,本人只用了其中的一种。
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818