• 利用设备描述符画图


    // 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);

  • 相关阅读:
    11
    关于一些问题的解决办法[记录]TF400017
    jdbc一次性采集mysql和oracle的海量数据,5000W+为例
    java 读取配置文件类
    Apache Thrift
    Runtime.getRuntime().exec 类 防止阻塞
    angularjs select
    angularjs
    简单的搭mysql开发环境
    运用java反射
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331619.html
Copyright © 2020-2023  润新知