OnPaint()函数与OnCreat()函数

本文介绍了MFC中OnPaint函数和OnCreate函数的作用及工作机制。OnPaint主要用于响应WM_PAINT消息,进行窗口绘图,而OnCreate则是响应WM_CREATE消息,用于窗口生成前设置属性。OnPaint通过无效区处理机制提高绘图效率,OnCreate则用于设置窗口风格和位置。
摘要由CSDN通过智能技术生成

在编写MFC程序的过程中,有两个常见的函数,OnCreat()与OnPaint(),有时候常常搞不清楚它们是怎么调用的,是在窗口创建之前还是窗口创建之后?它们都分别起到了什么作用?下面我们对其分别进行介绍。

1)OnPaint函数

主要功能: Windows发送WM_PAINT消息,程序响应并绘图;
发生原因: 诱使Windows发送WM_PAINT消息的原因可能有很多种,比如移动了一个窗口,由于窗口原先被遮盖的一部分显露出来了,或者是窗口的大小改变了。
工作机制: 当一个WM_PAINT抵达时,调用OnPaint处理函数,而OnPaint的绘制是从创建一个名为dc的CPaintDC的对象开始的;
打开方式:

开启OnPaint函数有下面三种选择:

1) 直接发送WM_PAINT消息,用PostMessage(),SendMessage()函数发送WM_PAINT消息。使用以上两函数发送WM_PAINT消息,能将WM_PAINT消息发送到WINDOWS程序消息队列中,当WINDOWS将WM_PAINT消息发送给具体的消息处理函数时,如果窗口的无效区域为空则WINDOWS将不理睬该消息。若存在无效区域,则调用窗口处理函数处理。要注意的这里需要存在无效区域,因此要调用2)中的函数使得窗体(或者部分)无效,其处理过程与2)相同,将WM_PAINT消息送入消息处理队列。与3)不同的是WM_PAINT并不立即处理;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值