各种DC的使用

第一种:SDK下的HDC

HDC  hdc = GetDC(hWnd); 

//hWnd是InistInstance中调用CreateWindow返回的一个通常用HWND类型的hWnd变量接收

//hwnd代表一个窗体的实例句柄

实例应用:

MoveToEx(hdc, Spoint.x, Spoint.y, NULL); //移动直线起点

LineTo(hdc, Epoint.x, Epoint.y); //从起点画线到终点

ReleaseDC(hWnd, hdc);  //DC是临界资源,用完一定要释放

 

第二种:Cwnd下的CDC

CDC *pdc = GetDC();  //CWnd的public成员函数CWnd::GetDC

实例运用:

pdc->MoveTo(Spoint);

pdc->LineTo(Epoint);

ReleaseDC(pdc);

 

第三种:CWnd 下的CClientDC

//因为是在中构造的dc,析构函数会释放dc

CClientDC dc( GetParent()或pWnd或this);  //GetParent返回父窗口的指针pWnd

实例应用:

dc.MoveTo(Spoint);

dc.LineTo(Epoint);

第四种:CWnd下的CwindowDC

1.     CWindowDCdc(GetParent()或this);

//得到父窗口的指针pWnd,线能画到窗口非客户区

2.     CWindowDC dc(GetDeskTopWindow() );

//得到桌面(桌面也是一种窗体)的窗口指针pWnd,线能画到桌面

实例应用:用不同的dc对象得到同画线效果

dc.MoveTo(Spoint);

dc.LineTo(Epoint);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值