MFC自定义绘图

重点内容:

1、绘图过程放在计时器里面,这样可以防止集中刷新时的闪烁。

2、重写OnMouseMove函数,记录鼠标与各控件的位置。

3、虽使用MFC绘图,但是为了使界面美观,所以将资源视图->需要修改的窗口->属性->外观->Border的值改成None。

4、重写OnLButtonDown函数,这里面设置哪些部分为标题栏,可以进行拖动。可以使用这个设置::PostMessage(m_hWnd, WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));

5、重写OnCtlColor函数,返回类中自定义的CBrush对象。

6、绘图函数PaintCanvas。

7、计时器里面判断哪些控件需要绘制,判断的依据是2里面记录的鼠标与控件的位置。

 

代码:

这里主要记录两个函数的代码

1、PaintCanvas

这个函数是整个界面中的难点,思路是:

(1)创建一个画布bmp和内存对象cdc。

(2)管理画布和内存对象。

(3)将控件都绘制到画布bmp里面。

(4)以画布作为图形创建一个画刷(这个画刷就在后面的OnCtlColor中返回给系统进行绘制)。

void CSelfUIDlg::PaintCanvas()
{
    CPaintDC _dc(this);
    CDC cdc;
    cdc.CreateCompatibleDC(&_dc);
    CBitmap bmp;
    bmp.Create

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值