关于CWnd指针

Magic丶旭 2015-10-16 10:02:52
例如用CWnd类的函数:WindowFromPoint返回一个指针,那么这个指针所指向的对象如何被析构?在什么时候被析构?有一段代码一直获取鼠标指向的窗口的类指针的话,会不会造成内存泄漏?
...全文
109 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
encoderlee 版主 2015-10-17
  • 打赏
  • 举报
回复
_AFXWIN_INLINE CWnd* PASCAL CWnd::WindowFromPoint(POINT point) { return CWnd::FromHandle(::WindowFromPoint(point)); } WindowFromPoint内部也调用了FromHandle,CWnd很多返回窗口指针的函数都调用了FromHandle
Magic丶旭 2015-10-17
  • 打赏
  • 举报
回复
引用 3 楼 蒋晟的回复:
临时映射建立的CWnd对象是在线程消息循环的空闲处理里面销毁的。参考CWnd::DeleteTempMap。
这个函数不是删除FromHandle的对象吗?
奋起无痕 2015-10-17
  • 打赏
  • 举报
回复
类对象会在对象销毁时自己调用析构函数,不用你去主动析构。 除非是NEW出来的类对象,需要你delete。
蒋晟 2015-10-17
  • 打赏
  • 举报
回复
临时映射建立的CWnd对象是在线程消息循环的空闲处理里面销毁的。参考CWnd::DeleteTempMap。
www_adintr_com 2015-10-16
  • 打赏
  • 举报
回复
你不用去析构,MFC 内部维护着一个窗口句柄和 CWnd× 指针的映射关系,所以对同一个窗口句柄,它每次返回的都是同一个 CWnd* 指针,你不用去析构这个指针的。 MFC 自己在窗口销毁或程序退出的时候应该会去销毁这些对象的
孤客天涯 2015-10-16
  • 打赏
  • 举报
回复
WindowFromPoint是指该函数获得包含指定点的窗口的指针,无需析构,不会有内存泄露

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧