利用设备描述符画图

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值