zoukankan      html  css  js  c++  java
  • 利用设备描述符画图

    // TODO: 在此添加消息处理程序代码和/或调用默认值
        //利用window object 操作设备上下文HDC 画图
      HDC hdc;
     hdc=::GetDC(m_hWnd);
     MoveToEx(hdc,cpoint.x,cpoint.y,NULL);
     LineTo(hdc,point.x,point.y);
     ::ReleaseDC(m_hWnd,hdc);
     CDialog::OnLButtonUp(nFlags, point);

     //mfc封装cdc利用CDC操作


     CDC* cdc=CWnd::GetDC();
     cdc->MoveTo(cpoint.x,cpoint.y);
     cdc->LineTo(point.x,point.y);
     CWnd::ReleaseDC(cdc);

     //利用cdc的实现类 CClientDC 构造生成dc 析构注销dc

     CClientDC cdc(this); //如果多窗口 GetParent() 获取frame 画图到工具栏
     cdc.MoveTo(cpoint.x,cpoint.y);
     cdc.LineTo(point.x,point.y);

     //利用cdc的实现类 CClientDC 构造生成dc 析构注销dc

     CWindowDC cdc(this); //如果多窗口 getParent() 获取frame 画图到菜单栏
     cdc.MoveTo(cpoint.x,cpoint.y);
     cdc.LineTo(point.x,point.y);

     //画到整个windows
     CWindowDC cdc(GetDesktopWindow()); //如果多窗口 getParent() 获取frame 画图到菜单栏
     cdc.MoveTo(cpoint);
     cdc.LineTo(point);

    //利用画笔改变颜色大小
     CPen pen(PS_DASHDOT,10,RGB(255,0,0));
     CClientDC dc(this);
     dc.SelectObject(&pen);
     dc.MoveTo(cpoint);
     dc.LineTo(point);

     //利用画刷 话方形

        CClientDC dc(this);
     CBrush brush(RGB(255,0,0));
     dc.FillRect(CRect(cpoint,point),&brush);

     // 画矩形
        CClientDC dc(this);
     dc.Rectangle(CRect(cpoint,point));

     //获取透明画刷
     CClientDC dc(this);
     dc.Rectangle(CRect(cpoint,point));
     CBrush *brush=CBrush::FromHandle((HBRUSH)::GetStockObject(NULL_BRUSH));
     //替换掉新的画刷后 返回旧的画刷
     CBrush *oldbrush=dc.SelectObject(brush);
     dc.Rectangle(CRect(cpoint,point));
     dc.SelectObject(oldbrush);

  • 相关阅读:
    析构函数中的virtual是否必要?
    程序员必看的书
    UML类图几种关系的总结
    VS 2008的64位编译环境的安装和使用
    VB获取CAD属性值
    30分钟LINQ教程
    ADO.NET
    C#编写Windows服务程序图文教程
    Json的序列化与反序列化以及乱入的k_BackingField
    C#中的委托(Delegate)和事件(Event)
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331619.html
Copyright © 2011-2022 走看看