首页 > 代码库 > VC几种不同的画线方法
VC几种不同的画线方法
1. 画线
方法I:使用HDC (SDK模式)
HDC hDC; hDC = ::GetDC(m_hWnd); //此处要用全局的::GetDC,否则默认用CDC的。 MoveToEx(hDC, point1.x, point1.y, NULL); //MoveToEx,先移到初始点,然后再画线 LineTo(hDC, point2.x, point2.y); ::ReleaseDC(m_hWnd, hDC); //释放也要用全局::ReleaseDC
方法II:使用CDC(MFC模式)
CDC *pdc=GetDC(); pdc->MoveTo(point1); pdc->LineTo(point2); ReleaseDC(pdc);
方法III:使用CClientDC(CClientDC继承自CDC,不需要手动GetDC和ReleaseDC,传递this或GetParent())
CClientDC dc(GetParent()); //可以在Frame下画线 dc.MoveTo(m_ptOrigin); dc.LineTo(point);
方法IV:使用CWindowDC(CWindowDC继承自CDC,包含客户区和非客户区,可以在整个屏幕下画线 )
CWindowDC dc(GetDesktopWindow()); dc.MoveTo(m_ptOrigin); dc.LineTo(point);
2. 设置线条的颜色,样式,宽度
方法1:
CClientDC dc(this); CPen pen(PS_DASH,1,RGB(255,0,0)); //定义一个画笔,样式为破折号,颜色为红色,宽度为1像素 CPen *cOldPen=dc.SelectObject(&pen); //将新画笔选到dc中,并保存之前的画笔 dc.MoveTo(m_ptOrigin); dc.LineTo(point); dc.SelectObject(cOldPen); //还原旧画笔
方法2:
CDC *pDC = GetDC(); CPen pen(PS_SOLID, 2, RGB(200,200,200)); //定义一个画笔,样式为实线,颜色为灰色,宽度为2像素 CPen *pOldPen = pDC->SelectObject(&pen); //将新画笔选入设备描述表,并返回之前的画笔 pDC->MoveTo(m_ptOrign); pDC->LineTo(point); pDC->SelectObject(pOldPen); //还原旧画笔 ReleaseDC(pDC);
VC几种不同的画线方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。