【发布时间】:2010-11-08 04:20:12
【问题描述】:
是否有可能有一个有效的 HWND 与一个有效的父级,然后父级变为无效而子级变为无效?
【问题讨论】:
标签: c++ windows parent-child hwnd
是否有可能有一个有效的 HWND 与一个有效的父级,然后父级变为无效而子级变为无效?
【问题讨论】:
标签: c++ windows parent-child hwnd
不,请参阅DestroyWindow 的文档:
如果指定的窗口是父窗口或所有者窗口,则 DestroyWindow 在销毁父窗口或所有者窗口时会自动销毁关联的子窗口或拥有的窗口。该函数首先销毁子窗口或拥有的窗口,然后销毁父窗口或所有者窗口。
【讨论】:
仅当您首先在子窗口上调用 SetParent 时。 DestroyWindow 将破坏一个窗口及其所有当前子窗口。
由于窗口具有线程关联性,并且子级具有与其父级相同的线程关联性,因此SetParent 和 DestroyWindow 之间不存在竞争条件的风险。
【讨论】: