画粗实线时,怎样使直线的端点是绝对直角的? 画粗实线时放大后发现直线的端点是圆头的怎样使之为绝对方形的端点呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 PS_ENDCAP_ROUND 结束处为圆形PS_ENDCAP_SQUARE 结束处为方形画笔的风格或上PS_ENDCAP_SQUARE 结束处为方形 LOGBRUSH lb;lb.lbStyle=BS_SOLID;lb.lbColor=RGB(0,255,0);CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,4,&lb);CPen *old=pDC->SelectObject(&pen);pDC->BeginPath();pDC->MoveTo(300,300);pDC->LineTo(400,400);pDC->CloseFigure();pDC->EndPath();pDC->StrokePath();pDC->SelectObject(old);pen.DeleteObject(); 我试了一下,你的要求估计要用PS_ENDCAP_FLAT 其实我的本意是利用粗实线画矩形将下列代码加入到OnDraw中: pDC->SetMapMode(MM_HIMETRIC); pDC->SetWindowOrg(-10000,10000); LOGBRUSH lb; lb.lbStyle=BS_SOLID; lb.lbColor=RGB(0,255,0); CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,400,&lb); CPen *old=pDC->SelectObject(&pen); pDC->BeginPath(); pDC->MoveTo(100,100); pDC->LineTo(100,5000); pDC->LineTo(5000,5000); pDC->EndPath(); pDC->StrokePath(); pDC->SelectObject(old); pen.DeleteObject();发现矩形的外轮廓仍旧不是直角的 //pDC->BeginPath();pDC->MoveTo(100,100);pDC->LineTo(100,5000);pDC->LineTo(5000,5000);//pDC->EndPath();//pDC->StrokePath(); 嗯果真好用但是如果用pDC->Polygon画封闭的多边形就不好用了 pDC->SetMapMode(MM_HIMETRIC); pDC->SetWindowOrg(-10000,10000); LOGBRUSH lb; lb.lbStyle=BS_SOLID; lb.lbColor=RGB(0,255,0); CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL/*|PS_ENDCAP_FLAT*/,400,&lb); CPen *old=pDC->SelectObject(&pen); pDC->MoveTo(100,100); pDC->LineTo(100,5000); pDC->LineTo(5000,5000); CPoint pts[4]; pts[0].x=800; pts[0].y=100; pts[1].x=800; pts[1].y=4000; pts[2].x=4000; pts[2].y=4000; pts[3].x=4000; pts[3].y=100; pDC->Polygon(pts, 4); pDC->SelectObject(old); pen.DeleteObject(); 是的我是想问一下Polygon画出的边不是直角应该怎么处理呢? LOGBRUSH lb; lb.lbStyle=BS_SOLID; lb.lbColor=RGB(0,255,0); CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,300,&lb); CPen *old=pDC->SelectObject(&pen); float fOut; CPoint pt[5]; pt[0].x = 100; pt[0].y = 100; pt[1].x = 800; pt[1].y = 100; pt[2].x = 800; pt[2].y = 500; pt[3].x = 100; pt[3].y = 800; pt[4].x = 100; pt[4].y = 100; pDC->Polygon(pt,5); pDC->SelectObject(old); 没问题的,边角都是直角,你在好好看看你的 LOGBRUSH lb;lb.lbStyle=BS_SOLID;lb.lbColor=RGB(0,255,0);CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,300,&lb);CPen *old=pDC->SelectObject(&pen);float fOut;CPoint pt[5];pt[0].x = 100;pt[0].y = 100;pt[1].x = 800;pt[1].y = 100;pt[2].x = 800;pt[2].y = 500;pt[3].x = 100;pt[3].y = 800;pt[4].x = 100;pt[4].y = 100;pDC->Polygon(pt,5);pDC->SelectObject(old);画出的外轮廓不是直角啊 将CPen 改为如下就可以了CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_MITER,400,&lb); 关于dll多国语言的制作 com开发,项目-》属性-》常规里面是否必须选unicode? 如何定义函数引用参数默认值? 请问哪里有专业一点的COM论坛? 路过请提携! 请教:vc+oracle用什么方法好? 关于capDriverConnect 请问,用COM可以实现运算符重载吗?是在接口实现,还是在实体? 请教高手:使用cj60库产生的工作区中的视如何与主框架窗口中的视共用同一个文档? 数据库备份后,取数据库文件大小失败的原因 我刚学完c++语言,请问vc++入门看哪本书??? 郁闷,散分 Zip中目录深度遍历存储后如何还原,并在内存中组织成一棵树。
PS_ENDCAP_SQUARE 结束处为方形画笔的风格或上PS_ENDCAP_SQUARE 结束处为方形
lb.lbStyle=BS_SOLID;
lb.lbColor=RGB(0,255,0);
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,4,&lb);
CPen *old=pDC->SelectObject(&pen);
pDC->BeginPath();
pDC->MoveTo(300,300);
pDC->LineTo(400,400);
pDC->CloseFigure();
pDC->EndPath();
pDC->StrokePath();
pDC->SelectObject(old);
pen.DeleteObject();
PS_ENDCAP_FLAT
pDC->SetMapMode(MM_HIMETRIC);
pDC->SetWindowOrg(-10000,10000);
LOGBRUSH lb;
lb.lbStyle=BS_SOLID;
lb.lbColor=RGB(0,255,0);
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,400,&lb);
CPen *old=pDC->SelectObject(&pen);
pDC->BeginPath();
pDC->MoveTo(100,100);
pDC->LineTo(100,5000);
pDC->LineTo(5000,5000);
pDC->EndPath();
pDC->StrokePath();
pDC->SelectObject(old);
pen.DeleteObject();发现矩形的外轮廓仍旧不是直角的
pDC->MoveTo(100,100);
pDC->LineTo(100,5000);
pDC->LineTo(5000,5000);
//pDC->EndPath();
//pDC->StrokePath();
果真好用但是如果用pDC->Polygon画封闭的多边形就不好用了 pDC->SetMapMode(MM_HIMETRIC);
pDC->SetWindowOrg(-10000,10000);
LOGBRUSH lb;
lb.lbStyle=BS_SOLID;
lb.lbColor=RGB(0,255,0);
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL/*|PS_ENDCAP_FLAT*/,400,&lb);
CPen *old=pDC->SelectObject(&pen);
pDC->MoveTo(100,100);
pDC->LineTo(100,5000);
pDC->LineTo(5000,5000); CPoint pts[4];
pts[0].x=800;
pts[0].y=100;
pts[1].x=800;
pts[1].y=4000;
pts[2].x=4000;
pts[2].y=4000;
pts[3].x=4000;
pts[3].y=100;
pDC->Polygon(pts, 4);
pDC->SelectObject(old);
pen.DeleteObject();
我是想问一下Polygon画出的边不是直角
应该怎么处理呢?
lb.lbStyle=BS_SOLID;
lb.lbColor=RGB(0,255,0);
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,300,&lb);
CPen *old=pDC->SelectObject(&pen);
float fOut;
CPoint pt[5];
pt[0].x = 100;
pt[0].y = 100; pt[1].x = 800;
pt[1].y = 100;
pt[2].x = 800;
pt[2].y = 500; pt[3].x = 100;
pt[3].y = 800; pt[4].x = 100;
pt[4].y = 100; pDC->Polygon(pt,5);
pDC->SelectObject(old); 没问题的,边角都是直角,你在好好看看你的
lb.lbStyle=BS_SOLID;
lb.lbColor=RGB(0,255,0);
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_BEVEL,300,&lb);
CPen *old=pDC->SelectObject(&pen);
float fOut;
CPoint pt[5];
pt[0].x = 100;
pt[0].y = 100;pt[1].x = 800;
pt[1].y = 100;pt[2].x = 800;
pt[2].y = 500;pt[3].x = 100;
pt[3].y = 800;pt[4].x = 100;
pt[4].y = 100;pDC->Polygon(pt,5);
pDC->SelectObject(old);
画出的外轮廓不是直角啊
CPen pen(PS_GEOMETRIC|PS_SOLID|PS_ENDCAP_SQUARE|PS_JOIN_MITER,400,&lb);