请教,双缓存画多边形怎么搞

maimaiti001 2013-07-09 05:08:47
BitBlt,这个函数好像跟的参数是矩形?谁有列子给个参考下
或者帮我把下面这个多边形改下也行


CClientDC dcClient(m_hWnd);
Graphics g(dcClient.m_hDC);
g.SetSmoothingMode(SmoothingModeAntiAlias);
Color defaultclr(220,220,220);
SolidBrush defaultBrush(defaultclr);

Color penClr(230,230,230);
Pen pen(penClr, 3);

PointF p1(3,3);
PointF p2(3 + m_nSpace + m_nRowWidth - 4,3);
PointF p3(3 + m_nSpace + m_nRowWidth - 4,3 + m_nHeight - 4);
PointF p4(3 + m_Space - 5,3 + m_nHeight - 4);
PointF p5(3 + m_nSpace - 5,3 + m_nSpace + m_nrHeight - 4);
PointF p6(3,3 + m_Space + m_nrHeight - 4);
PointF arrPoint[] = {p1,p2,p3, p4,p5,p6};

g.FillPolygon(&defaultBrush, arrPoint, 6);
g.DrawPolygon(&pen, arrPoint, 6);

...全文
102 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Voyageur2 2013-07-12
  • 打赏
  • 举报
回复
有两种方法,第一种画在一个Bitmap bmp上面,Graphics graBmp(&bmp), 用graBmp在Bitmap上画多边形,然后Graphics graHDC(dc.m_hDC), 用graHDC将bmp画在DC上, graHDC.DrawImage(&bmp, x, x); 第二种方法是画在内存DC上面,然后BitBlt到屏幕DC,HDC hdcMem, Graphics graHDC(hdcMem), 画多边形, BitBlt(屏幕dc, 屏幕坐标x, y, 宽, 高, hdcMem, 内存坐标x, y, SRCCOPY); 第二种方法不支持Alpha通道,如果你只想在某个地方画一个多边形,那么要用第一种
maimaiti001 2013-07-09
  • 打赏
  • 举报
回复

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧