首页 VC++源代码

VC++源代码

举报
开通vip

VC++源代码Fourshortwordssumupwhathasliftedmostsuccessfulindividualsabovethecrowd:alittlebitmore.------------------------------------------author------------------------------------------dateVC++源代码页眉内容页眉内容PAGEPAGE20页眉内容PAGE第一章在CHlloView的OnDraw(CDC*pDC)函数中添加一行程序...

VC++源代码
Fourshortwordssumupwhathasliftedmostsuccessfulindividualsabovethecrowd:alittlebitmore.------------------------------------------author------------------------------------------dateVC++源代码页眉内容页眉内容PAGEPAGE20页眉内容PAGE第一章在CHlloView的OnDraw(CDC*pDC)函数中添加一行程序如下:voidCHello_View::OnDraw(CDC*pDC){CHello_Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedataherepDC->TextOut(50,20,"HelloWorld!");}第二章实践3下面列出与添加代码有关的程序片段,ItemEventDoc.h中类CItemEventDoc的定义如下:classCItemEventDoc:publicCDocument{protected://createfromserializationonlyCItemEventDoc();DECLARE_DYNCREATE(CItemEventDoc)CStringm_String;ItemEventDoc.cpp中类CItemEventDoc的实现:CItemEventDoc::CItemEventDoc(){//TODO:addone-timeconstructioncodeherem_String="";ItemEventDoc.cpp中类CItemEventView的OnDraw()函数实现:voidCItemEventDoc::OnMenuitemidDemo(){//TODO:Addyourcommandhandlercodeherem_String="嗨!这是菜单处理程序演示";UpdateAllViews(NULL);}voidCItemEventView::OnDraw(CDC*pDC){CItemEventDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedataherepDC->TextOut(50,20,pDoc->m_String);实践5在视类中添加代码如下:OidCInsertItemView::OnAddMenu(){//TODO:AddyourcommandhandlercodehereCWnd*pParent=GetParent();CMenu*pMenu=pParent->GetMenu();CMenu*subMenu=pMenu->GetSubMenu(0);subMenu->AppendMenu(MF_STRING|MF_ENABLED,3000,"新菜单项");}实践6将在视类中添加的代码加黑显示CInsertItemView类定义如下://InsertItemView.h:interfaceoftheCInsertItemViewclass///////////////////////////////////////////////////////////////////////////////#if!defined(AFX_INSERTITEMVIEW_H__FD590BE0_8111_473E_ADF1_FEA487F4813B__INCLUDED_)#defineAFX_INSERTITEMVIEW_H__FD590BE0_8111_473E_ADF1_FEA487F4813B__INCLUDED_#if_MSC_VER>1000#pragmaonce#endif//_MSC_VER>1000classCInsertItemView:publicCView{private:CStringstr;protected://createfromserializationonlyCInsertItemView();DECLARE_DYNCREATE(CInsertItemView)//Attributespublic:CInsertItemDoc*GetDocument();//Operationspublic://Overrides//ClassWizardgeneratedvirtualfunctionoverrides//{{AFX_VIRTUAL(CInsertItemView)public:virtualvoidOnDraw(CDC*pDC);//overriddentodrawthisviewvirtualBOOLPreCreateWindow(CREATESTRUCT&cs);protected:virtualBOOLOnPreparePrinting(CPrintInfo*pInfo);virtualvoidOnBeginPrinting(CDC*pDC,CPrintInfo*pInfo);virtualvoidOnEndPrinting(CDC*pDC,CPrintInfo*pInfo);//}}AFX_VIRTUAL//Implementationpublic:virtual~CInsertItemView();#ifdef_DEBUGvirtualvoidAssertValid()const;virtualvoidDump(CDumpContext&dc)const;#endifprotected://Generatedmessagemapfunctionsprotected://{{AFX_MSG(CInsertItemView)afx_msgvoidOnAddMenu();afx_msgvoidOnMyMenuItem();//}}AFX_MSGDECLARE_MESSAGE_MAP()};#ifndef_DEBUG//debugversioninInsertItemView.cppinlineCInsertItemDoc*CInsertItemView::GetDocument(){return(CInsertItemDoc*)m_pDocument;}#endif///////////////////////////////////////////////////////////////////////////////{{AFX_INSERT_LOCATION}}//MicrosoftVisualC++willinsertadditionaldeclarationsimmediatelybeforethepreviousline.#endif//!defined(AFX_DEMO06VIEW_H__FD590BE0_8111_473E_ADF1_FEA487F4813B__INCLUDED_)CInsertItemView类实现如下://InsertItemView.cpp:implementationoftheCInsertItemViewclass//#include"stdafx.h"#include"InsertItem.h"#include"InsertItemDoc.h"#include"InsertItemView.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CInsertItemViewIMPLEMENT_DYNCREATE(CInsertItemView,CView)BEGIN_MESSAGE_MAP(CInsertItemView,CView)//{{AFX_MSG_MAP(CInsertItemView)ON_COMMAND(ID_AddMenu,OnAddMenu)ON_COMMAND(3000,OnMyMenuItem)//}}AFX_MSG_MAP//StandardprintingcommandsON_COMMAND(ID_FILE_PRINT,CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,CView::OnFilePrintPreview)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CInsertItemViewconstruction/destructionCInsertItemView::CInsertItemView(){//TODO:addconstructioncodeherestr="";}CInsertItemView::~CInsertItemView(){}BOOLCInsertItemView::PreCreateWindow(CREATESTRUCT&cs){//TODO:ModifytheWindowclassorstylesherebymodifying//theCREATESTRUCTcsreturnCView::PreCreateWindow(cs);}///////////////////////////////////////////////////////////////////////////////CInsertItemViewdrawingvoidInsertItemView::OnDraw(CDC*pDC){CInsertItemDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedataherepDC->TextOut(20,20,str);}///////////////////////////////////////////////////////////////////////////////CInsertItemViewprintingBOOLCInsertItemView::OnPreparePrinting(CPrintInfo*pInfo){//defaultpreparationreturnDoPreparePrinting(pInfo);}voidCInsertItemView::OnBeginPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addextrainitializationbeforeprinting}voidCInsertItemView::OnEndPrinting(CDC*/*pDC*/,CPrintInfo*/*pInfo*/){//TODO:addcleanupafterprinting}///////////////////////////////////////////////////////////////////////////////CInsertItemViewdiagnostics#ifdef_DEBUGvoidCInsertItemView::AssertValid()const{CView::AssertValid();}voidCInsertItemView::Dump(CDumpContext&dc)const{CView::Dump(dc);}CInsertItemDoc*CInsertItemView::GetDocument()//non-debugversionisinline{ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CInsertItemDoc)));return(CDEMO06Doc*)m_pDocument;}#endif//_DEBUG///////////////////////////////////////////////////////////////////////////////CInsertItemViewmessagehandlersvoidCInsertItemView::OnAddMenu(){//TODO:AddyourcommandhandlercodehereCWnd*pParent=GetParent();CMenu*pMenu=pParent->GetMenu();CMenu*subMenu=pMenu->GetSubMenu(0);subMenu->AppendMenu(MF_STRING|MF_ENABLED,3000,"新菜单项");}voidCInsertItemView::OnMyMenuItem(){str="你选中了新添加的菜单项";Invalidate();}实践7在框架类中添加代码如下:intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;//TODO:Addyourspecializedcreationcodehereif(!m_wndToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){TRACE0("Failedtocreatetoolbar\n");return-1;//failtocreate}m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(&m_wndToolBar);return0;}实践8在框架类中添加代码如下:staticUINTindicators[]={ID_SEPARATOR,ID_INDICATOR_CAPS,ID_INDICATOR_NUM,ID_INDICATOR_SCRL,};intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CFrameWnd::OnCreate(lpCreateStruct)==-1)return-1;//TODO:Addyourspecializedcreationcodehereif(!m_wndStatusBar.Create(this)||!m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT))){TRACE0("Failedtoceratestatusbar\n");return-1;//failtocreate}return0;}第三章实践11在视类中添加代码如下:voidCDlgAppDlg::OnButtonStatic(){//TODO:Addyourcontrolnotificationhandlercodeherem_nRecordClicked+=1;m_strShowRecord.Format("您单击了按钮%d次",m_nRecordClicked);this->SetDlgItemText(IDC_STATIC_RECORD_CLICK,m_strShowRecord);}实践12在VC开发环境下复习按钮的添加过程,并在按钮的事件函数中添加消息框。弹出消息框的代码非常简单,只有一条语句,代码如下:voidCDlgApp1Dlg::OnMessageBox(){//TODO:AddyourcontrolnotificationhandlercodehereAfxMessageBox("这是一个消息框");}实践13添加代码如下:voidCDlgAppDlg::OnNewDlg(){//TODO:AddyourcontrolnotificationhandlercodehereCNewDlgnewdlg;newdlg.DoModal();实践14添加代码如下:voidCDlgAppDlg::OnButtonModelessDialog(){//TODO:AddyourcontrolnotificationhandlercodehereCNewDlg*dlg=newCNewDlg();dlg->Create(IDD_DIALOG1);dlg->ShowWindow(SW_SHOW);}第4章实践15在OnRadio1()中添加代码:voidCRadioAppDlg::OnRadio2(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();m_txt="您的性别是:女";UpdateData(false);}在OnRadio2()中添加代码:voidCRadioAppDlg::OnRadio1(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData();m_txt="您的性别是:男";UpdateData(false);}实践16为函数OnOK()添加代码:voidCCheckAppDlg::OnOK(){//TODO:AddextravalidationhereUpdateData();CStringstr;str="您的爱好为:";if(m_chk1==true){str=str+"篮球";}if(m_chk2==true){str=str+"足球";}if(m_chk3==true){str=str+"排球";}if(m_chk4==true){str=str+"乒乓球";}m_txt=str;UpdateData(false);}实践17为函数OnOK()添加代码:voidCGroupAppDlg::OnOK(){//TODO:AddextravalidationhereUpdateData();CStringstr;str="您是一位";if(m_rad1==0){str=str+"未婚";}else{str=str+"已婚";}if(m_rad3==0){str=str+"男性";}else{str=str+"女性";}m_txt=str;UpdateData(false);}实践18ON_BUTTON1;BN_CLICKED事件添加的代码为:voidCListAppDlg::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereCStringstr;m_txt.GetWindowText(str);m_list.AddString(str);m_txt.SetWindowText("");m_txt.SetFocus();ON_BUTTON2;BN_CLICKED事件添加的代码为:voidCListAppDlg::OnButton2(){//TODO:Addyourcontrolnotificationhandlercodehereintst;st=m_list.GetCurSel();m_list.DeleteString(st);}在OnInitDialog()函数中添加代码:BOOLCListAppDlg::OnInitDialog(){CDialog::OnInitDialog();m_list.AddString("语文");m_list.AddString("数学");m_list.AddString("英语");实践19为OnButton1添加事件代码如下:voidCListToListDlg::OnButton1(){//TODO:Addyourcontrolnotificationhandlercodehereintst;st=m_list1.GetCurSel();CStringstr;m_list1.GetText(st,str);m_list1.DeleteString(st);m_list2.AddString(str);}为OnButton2添加事件代码如下:voidCListToListDlg::OnButton2(){//TODO:Addyourcontrolnotificationhandlercodehereintst2;st2=m_list2.GetCurSel();CStringstr2;m_list2.GetText(st2,str2);m_list2.DeleteString(st2);m_list1.AddString(str2);}实践20为OnOK()添加代码如下:voidCComboAppDlg::OnOK(){//TODO:AddextravalidationhereUpdateData();m_txt="您的目的地是:"+m_str;UpdateData(false);}实践21为IDDK添加代码如下:voidCComTestAppDlg::OnOK()//TODO:AddextravalidationhereUpdateData();CStringm_str;if(m_sel==0){m_str="使用自行车需要很久";}if(m_sel==1){m_str="使用火车需要几天";}if(m_sel==2){m_str="使用飞机当天就能到达";}m_txt="从"+m_com1+"到"+m_com2+m_str;UpdateData(false);}第六章实践28为OnButton1()添加代码如下:voidCDrawLineDlg::OnButton1(){//TODO:AddyourcontrolnotificationhandlercodehereCStringk1,k2,k3,k4;intm1,m2,m3,m4;m_1.GetWindowText(k1);m_2.GetWindowText(k2);m_3.GetWindowText(k3);m_4.GetWindowText(k4);m1=atoi(k1);m2=atoi(k2);m3=atoi(k3);m4=atoi(k4);CDC*pDC=GetDC();CLinem_line(CPoint(m1,m2),CPoint(m3,m4));m_line.Draw(pDC);}下面列出与添加代码有关的程序片段,在Line.h中:CLine::CLine(){}CLine::~CLine(){}CLine::CLine(CPointpFrom,CPointpTo){m_pFrom=pFrom;m_pTo=pTo;}voidCLine::Draw(CDC*pDC){//DrawthelinepDC->MoveTo(m_pFrom);pDC->LineTo(m_pTo);}实践29OnMouseMove()事件代码如下:voidCMouseLineAppDlg::OnMouseMove(UINTnFlags,CPointpoint){CClientDCdc(this);CPenpen(0,0,RGB(0,0,0));CPen*pOldPen=dc.SelectObject(&pen);dc.SetROP2(R2_NOT);//设置成R2_NOTif(mPointOld!=point){dc.MoveTo(mPointOrign);dc.LineTo(mPointOld);dc.MoveTo(mPointOrign);dc.LineTo(point);mPointOld=point;}}OnLButtonUp()事件代码如下:voidCMouseLineAppDlg::OnLButtonUp(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultReleaseCapture();}OnLButtonDown()事件代码如下:voidCMouseLineAppDlg::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultmPointOrign=point;mPointOld=point;SetCapture();}实践30在PreCreateWindow()事件中添加如下代码:BOOLCMouseEllipseView::PreCreateWindow(CREATESTRUCT&cs){//TODO:ModifytheWindowclassorstylesherebymodifying//theCREATESTRUCTcspb=0;returnCView::PreCreateWindow(cs);}OnMouseMove()事件代码如下:voidCMouseEllipseView::OnMouseMove(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCdc(this);doubler;CPenpen(0,0,RGB(0,0,0));CPen*pOldPen=dc.SelectObject(&pen);dc.SetROP2(R2_NOT);if(pb!=0){if(mPointOld!=point){dc.SelectStockObject(NULL_BRUSH);r=sqrt(pow((mPointOrign.x-mPointOld.x),2)+pow((mPointOrign.y-mPointOld.y),2));dc.Ellipse(mPointOrign.x-r,mPointOrign.y-r,mPointOrign.x+r,mPointOrign.y+r);r=sqrt(pow((mPointOrign.x-point.x),2)+pow((mPointOrign.y-point.y),2));dc.Ellipse(mPointOrign.x-r,mPointOrign.y-r,mPointOrign.x+r,mPointOrign.y+r);mPointOld=point;}}}OnLButtonDown()事件代码如下:voidCMouseEllipseView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCmyDC(this);OnPrepareDC(&myDC);CPointm_Point1,m_Point2;doubler;if(pb==0){mPointOrign=point;mPointOld=point;myDC.SetPixel(point.x,point.y,0x0000ff00);pb=1;SetCapture();}else{r=sqrt(pow((mPointOrign.x-mPointOld.x),2)+pow((mPointOrign.y-mPointOld.y),2));m_Point1.x=mPointOrign.x-r;m_Point1.y=mPointOrign.y-r;m_Point2.x=mPointOrign.x+r;m_Point2.y=mPointOrign.y+r;myDC.Ellipse(m_Point1.x,m_Point1.y,m_Point2.x,m_Point2.y);ReleaseCapture();pb=0;}}实践31OnLButtonDown()事件中新增如下代码:voidCMouseEllipseView::OnLButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCClientDCmyDC(this);OnPrepareDC(&myDC);CPointm_Point1,m_Point2;doubler;if(pb==0){mPointOrign=point;mPointOld=point;myDC.SetPixel(point.x,point.y,0x0000ff00);pb=1;SetCapture();}else{r=sqrt(pow((mPointOrign.x-mPointOld.x),2)+pow((mPointOrign.y-mPointOld.y),2));m_Point1.x=mPointOrign.x-r;m_Point1.y=mPointOrign.y-r;m_Point2.x=mPointOrign.x+r;m_Point2.y=mPointOrign.y+r;myDC.Ellipse(m_Point1.x,m_Point1.y,m_Point2.x,m_Point2.y);ReleaseCapture();pb=0;CGraph*pGraph;pGraph=newCGraph(mPointOrign,point);m_ptrArray.Add(pGraph);}}在OnDraw()函数中添加如下代码:voidCMouseEllipseView::OnDraw(CDC*pDC){CMouseEllipseDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereCPointm_Point1,m_Point2;doubler;CBrush*pBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL));pDC->SelectObject(pBrush);for(inti=0;im_pOrigin.x-tmpGraph->m_pEnd.x),2)+pow((tmpGraph->m_pOrigin.y-tmpGraph->m_pEnd.y),2));m_Point1.x=tmpGraph->m_pOrigin.x-r;m_Point1.y=tmpGraph->m_pOrigin.y-r;m_Point2.x=tmpGraph->m_pOrigin.x+r;m_Point2.y=tmpGraph->m_pOrigin.y+r;pDC->Ellipse(m_Point1.x,m_Point1.y,m_Point2.x,m_Point2.y);}}实践32DrawToBmpView.cpp中:OnDraw(CDC*pDC)函数的代码如下:voidCDrawToBmpView::OnDraw(CDC*pDC){CDrawToBmpDoc*pDoc=GetDocument();ASSERT_VALID(pDoc);//TODO:adddrawcodefornativedatahereCRectrc;GetClientRect(&rc);DrawCurve(pDC,rc);}DrawToBmpView.cpp中SaveAsBmp(CStringfilename)函数的代码如下:voidCDrawToBmpView::SaveAsBmp(CStringfilename){//定义图形大小intiWidth=800;intiHeight=600;intiPixel=16;//图形格式参数LPBITMAPINFOlpbmih=newBITMAPINFO;lpbmih->bmiHeader.biSize=sizeof(BITMAPINFOHEADER);lpbmih->bmiHeader.biWidth=iWidth;lpbmih->bmiHeader.biHeight=iHeight;lpbmih->bmiHeader.biPlanes=1;lpbmih->bmiHeader.biBitCount=iPixel;lpbmih->bmiHeader.biCompression=BI_RGB;lpbmih->bmiHeader.biSizeImage=0;lpbmih->bmiHeader.biXPelsPerMeter=0;lpbmih->bmiHeader.biYPelsPerMeter=0;lpbmih->bmiHeader.biClrUsed=0;lpbmih->bmiHeader.biClrImportant=0;//创建位图数据HDChdc,hdcMem;HBITMAPhBitMap=NULL;CBitmap*pBitMap=NULL;CDC*pMemDC=NULL;BYTE*pBits;hdc=CreateIC(TEXT("DISPLAY"),NULL,NULL,NULL);hdcMem=CreateCompatibleDC(hdc);hBitMap=CreateDIBSection(hdcMem,lpbmih,DIB_PAL_COLORS,(void**)&pBits,NULL,0);pBitMap=newCBitmap;pBitMap->Attach(hBitMap);pMemDC=newCDC;pMemDC->Attach(hdcMem);pMemDC->SelectObject(pBitMap);//CRectrc(0,0,iWidth,iHeight);pMemDC->SetBkMode(TRANSPARENT);//添加自绘图形DrawCurve(pMemDC,rc);//保存到文件并创建位图结构BITMAPFILEHEADERbmfh;ZeroMemory(&bmfh,sizeof(BITMAPFILEHEADER));*((char*)&bmfh.bfType)='B';*(((char*)&bmfh.bfType)+1)='M';bmfh.bfOffBits=sizeof(BITMAPFILEHEADER)+sizeof(BITMAPFILEHEADER);bmfh.bfSize=bmfh.bfOffBits+(iWidth*iHeight)*iPixel/8;TCHARszBMPFileName[28];intiBMPBytes=iWidth*iHeight*iPixel/8;strcpy(szBMPFileName,filename);CFilefile;if(file.Open(szBMPFileName,CFile::modeWrite|CFile::modeCreate)){file.Write(&bmfh,sizeof(BITMAPFILEHEADER));file.Write(&(lpbmih->bmiHeader),sizeof(BITMAPFILEHEADER));file.Write(pBits,iBMPBytes);file.Close();}pMemDC->DeleteDC();deletepMemDC;pMemDC=NULL;deletepBitMap;pBitMap=NULL;deletelpbmih;lpbmih=NULL;}DrawToBmpView.cpp中OnRButtonDown()函数的代码:voidCDrawToBmpView::OnRButtonDown(UINTnFlags,CPointpoint){//TODO:Addyourmessagehandlercodehereand/orcalldefaultCFileDialogdlg(false,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位图文件(*.bmp)|*.bmp|",NULL);if(dlg.DoModal()!=IDOK)return;CStringfilename=dlg.GetFileName()+".bmp";SaveAsBmp(filename);CView::OnRButtonDown(nFlags,point);}voidCDrawToBmpView::DrawCurve(CDC*pDC,CRectrcClient){//页面背景色CBrushbrushCtl;brushCtl.CreateSolidBrush(RGB(255,255,255));pDC->Rectangle(rcClient);pDC->FillRect(rcClient,&brushCtl);brushCtl.DeleteObject();CPenpen;pen.CreatePen(PS_SOLID,1,RGB(255,255,0));CPen*oldPen=pDC->SelectObject(&pen);pDC->Ellipse(100,100,300,300);pDC->Ellipse(500,100,700,300);pDC->Rectangle(300,300,500,500);pDC->SelectObject(oldPen);pen.DeleteObject();oldPen=NULL;}实践33CSineTest.h中添加的主要代码如下:classCSineCurve{public:CSineCurve();virtual~CSineCurve();voidInit(intx,inty,intwid,inthei,CDC*pDC);voidDrawSine();voidDrawFrame();voidDrawCoordinate();voidDrawScale();voidDrawCurve();private:intleft;inttop;intwidth;intheight;CDC*pDC;intleftSpace;inttopSpace;intcurveHeight;inthalfCurveHeight;intspace;};CSineText.cpp中添加的主要代码如下:SCineCurve::~CSineCurve(){}voidCSineCurve::Init(intx,inty,intwid,inthei,CDC*pDC){left=x;top=y;width=wid;height=hei;this->pDC=pDC;}voidCSineCurve::DrawSine(){DrawFrame();DrawCoordinate();DrawScale();DrawCurve();}voidCSineCurve::DrawFrame(){pDC->Rectangle(left,top,left+width,top+height);CFontm_listCtrlFont;m_listCtrlFont.CreateFont(12,9,0,0,FW_BLACK,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,PROOF_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"宋体");pDC->TextOut(left+100,top+10,"正弦曲线图");pDC->TextOut(left+10,top+20,"Y");pDC->TextOut(left+width-leftSpace,top+topSpace+halfCurveHeight,"X");}voidCSineCurve::DrawCoordinate(){POINTp;p.x=left+leftSpace;p.y=top+topSpace+curveHeight;pDC->MoveTo(p.x-space,p.y-halfCurveHeight);pDC->LineTo(p.x+width-leftSpace*2,p.y-halfCurveHeight);pDC->MoveTo(p.x,p.y+space);pDC->MoveTo(p.x,p.y-curveHeight-space);}voidCSineCurve::DrawScale(){intnumber=4;inttmpy=top+topSpace;pDC->MoveTo(left+leftSpace,tmpy);pDC->LineTo(left+leftSpace-4,tmpy);CStringscale="1";pDC->TextOut(left+4,tmpy-8,scale);tmpy=top+topSpace+curveHeight;pDC->MoveTo(left+leftSpace,tmpy);pDC->LineTo(left+leftSpace-4,tmpy);scale="-1";pDC->TextOut(left+4,tmpy-8,scale);}voidCSineCurve::DrawCurve(){intmode=pDC->GetROP2();pDC->SetROP2(R2_XORPEN);for(inti=0;iSetPixel(left+leftSpace+i,py,RGB(0,255,0));}pDC->SetROP2(mode);}
本文档为【VC++源代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
清风青春
暂无简介~
格式:doc
大小:171KB
软件:Word
页数:21
分类:
上传时间:2022-03-30
浏览量:0