gpt4 book ai didi

mfc - 从 CWnd::FromHandle 获得的 CWnd 的生命周期是多少?

转载 作者:行者123 更新时间:2023-12-04 00:53:46 25 4
gpt4 key购买 nike

根据 msdn ,当我用 CWnd::FromHandle 得到 CWnd* 时,

The pointer may be temporary and should not be stored for later use.



我不清楚“以后使用”是什么意思。它只是当前方法的范围吗?
据我所知,Win32是没有GC的!

最佳答案

MFC 维护了许多句柄映射,从 HWND 到 CWnd,从 HDC 到 CDC 等,它们存储在线程状态中。每个句柄映射都包含一个永久映射和临时映射 - 当您调用 CWnd::Create 或 CDC::Attach 等方法时会添加永久条目,而当您在没有的句柄上调用 FromHandle 时会创建临时条目永久入境。

临时条目在空闲处理期间被清除(在 CWinApp::OnIdle 中),因此它们只能在处理当前消息时安全地使用。一旦您返回消息循环,或进入另一个模式循环(例如,通过调用 DoModal),它们可能会被删除。

关于mfc - 从 CWnd::FromHandle 获得的 CWnd 的生命周期是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1504507/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com