OnCreate(); GetDC();

本文详细介绍了MFC框架中窗口创建的过程及其与OnCreate函数的关系,同时解释了Create函数与OnCreate函数的区别,并探讨了GetDC函数的用途及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

OnCreate是一个消息响应函数,是响应WM_CREATE消息的一个函数,而WM_CREATE消息是由Create 函数调用的。
在view类中,Create 是 虚函数框架调用,是用来“生成一个窗口的子窗口”。 而OnCreate 函数是用来“表示一个窗口正在生成”。
一个窗口创建(Create)之后,会向操作系统发送WM_CREATE消息,OnCreate()函数主要是用来响应此消息的。因为在MFC里面用一种消息映射的机制来响应消息,也就是可以用函数来响应相应的消息。就拿CMainFrame类来说,当窗口创建后会产生WM_CREATE消息,我们可以在OnCreate函数里实现我们要在窗口里面增加的东西,例如按扭,状态栏,工具栏等。这些子窗口一般是定义成类中的一个 成员变量,因为要保证生命周期。一般以m_开头来表示成员(member)。
OnCreate()不产生窗口,只是在窗口显示前设置窗口的属性如风格、位置等,Create()负责注册并产生窗口
Create()不是对应于消息WM_CREATE的,OnCreate()才是。Create()只用于产生窗口,像动态创建控件中的Create()一样。
/////////////////////////////////
GetDC函数根据指定的等级类型检索指定窗口普通的、典型的或特有的 设备上下文环境。
对于普通 设备上下文环境,GetDC在每次检索的时候部分分配给它缺省特性,对于典型和特有的设备上下文环境,GetDC不改变先前设置的特性。
在使用普通 设备上下文环境绘图之后,必须调用ReleaseDc函数释放该设备上下文环境,典型和特有设备上下文环境不需要释放,设备上下文环境的个数仅受有效内存的限制。
还有一点要特别注意,getdc函数对系统的相对开销比较大,如果你的程序里使用了几百个getdc函数而又不通过ReleaseDC函数释放的话,那你机器运行速度将是龟速。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值