voidCDrawLinesView::MenuDdaline()...{CDC*pDC=GetDC();intxa=m_pnt1.x,ya=m_pnt1.y,xb=m_pnt2.x,yb=m_pnt2.y,c=RGB(255,0,0);floatx,y;floatdx,dy,k;dx=(float)(xb-xa);dy=(float)(yb-ya);k=dy/dx;y=ya;x=xa;if(abs(k)<1)...{if(xa<=xb)...{for(x=xa;x<=xb;++x)...{pDC->SetPixel((int)x,int(y+0.5),c);y+=k;}}elseif(xa>xb)...{for(x=xa;x>=xb;--x)...{pDC->SetPixel((int)x,int(y+0.5),c);y-=k;}}}if(abs(k)>=1)...{if(ya<=yb)...{for(y=ya;y<=yb;++y)...{pDC->SetPixel(int(x+0.5),(int)y,c);x+=1/k;}}elseif(ya>yb)...{for(y=ya;y>=yb;--y)...{pDC->SetPixel(int(x+0.5),(int)y,c);x-=1/k;}}}ReleaseDC(pDC);}voidCDrawLinesView::MenuMindlepoint()...{CDC*dc=GetDC();intx0=m_pnt1.x,y0=m_pnt1.y,x1=m_pnt2.x,y1=m_pnt2.y,color=RGB(0,255,0);intdx,dy,nexte,nextne,d,x,t,y;floatm;dx=x1-x0;dy=y1-y0;m=1.0*dy/dx;//¼ÆËãбÂÊ£¬²¢ÒÀ¾Ý´Ë½øÐÐÅжÏif(m<=1&&m>=0)...{if(x0>=x1)...{swap(x0,x1);swap(y0,y1);dx=-dx;dy=-dy;//½»»»×ø±êºódx,dy±äΪÏà·´µÄÊý}x=x0;y=y0;d=dx-2*dy;//d0nexte=-2*dy;//ÏÂÒ»¸ö×ø±ê¾àÀëǰһ¸ö×ø±êµÄÆ«ÒÆnextne=-2*dy+2*dx;while(x<x1)...{if(d>0)d+=nexte;else...{d+=nextne;y++;}x++;dc->SetPixel(x,y,color);}}elseif(m>=-1&&m<0)...{if(x0>=x1)...{swap(x0,x1);swap(y0,y1);dx=-dx;dy=-dy;}x=x0;y=y0;d=-dx-2*dy;//d0nexte=-2*dy;nextne=-2*dy-2*dx;while(x<x1)...{if(d>0)...{d+=nextne;y--;}elsed+=nexte;x++;dc->SetPixel(x,y,color);}}elseif(m>1)...{if(y0>=y1)...{swap(x0,x1);swap(y0,y1);dy=-dy;dx=-dx;}x=x0;y=y0;d=-dy+2*dx;//d0nexte=2*dx;nextne=-2*dy+2*dx;while(y<y1)...{if(d>0)...{d+=nextne;x++;}elsed+=nexte;y++;dc->SetPixel(x,y,color);}}elseif(m<-1)...{if(y0>=y1)...{swap(x0,x1);swap(y0,y1);dx=-dx;dy=-dy;}x=x0;y=y0;d=2*dx+dy;//d0nexte=2*dx;nextne=2*dx+2*dy;while(y<y1)...{if(d<0)...{d+=nextne;x--;}elsed+=nexte;y++;dc->SetPixel(x,y,color);}}ReleaseDC(dc);}voidswap(int&x1,int&x2)...{intt;t=x1;x1=x2;x2=t;}voidCDrawLinesView::MenuBhline()...{CDC*dc=GetDC();intx0=m_pnt1.x,y0=m_pnt1.y,x1=m_pnt2.x,y1=m_pnt2.y,color=RGB(0,0,255);intx,y,dx,dy,sx,sy;intf;boolflag=false;x=x0;y=y0;dx=abs(x0-x1);dy=abs(y0-y1);if(x1-x0>=0)sx=1;elsesx=-1;if(y1-y0>=0)sy=1;elsesy=-1;if(dy>dx)...{swap(dx,dy);flag=true;}elseflag=false;f=2*dy-dx;for(inti=1;i<=dx;++i)...{dc->SetPixel(x,y,color);if(f>=0)...{if(flag)x+=sx;elsey+=sy;dc->SetPixel(x,y,color);f-=2*dx;}else...{if(flag)y+=sy;elsex+=sx;f+=2*dy;}}}voidCDrawLinesView::OnMenuDdaline()...{//TODO:Addyourcommandhandlercodeherem_blDDA=true;m_blMid=false;m_blBre=false;}voidCDrawLinesView::OnMenuMindlepoint()...{//TODO:Addyourcommandhandlercodeherem_blDDA=false;m_blMid=true;m_blBre=false;}voidCDrawLinesView::OnMenuBhline()...{//TODO:Addyourcommandhandlercodeherem_blDDA=false;m_blMid=false;m_blBre=true;}voidCDrawLinesView::OnLButtonDown(UINTnFlags,CPointpoint)...{//TODO:Addyourmessagehandlercodehereand/orcalldefault++m_pntCount;if(m_pntCount==1)m_pnt1=point;elseif(m_pntCount==2)...{m_pnt2=point;if(m_blDDA)MenuDdaline();if(m_blMid)MenuMindlepoint();if(m_blBre)MenuBhline();m_pntCount=0;}CView::OnLButtonDown(nFlags,point);}