0

我正在尝试调用 CWnd 类的函数 GetParent()。每次都会抛出异常。我正在从工作线程调用该函数。

这是导致异常的行: CWnd* parent = this->GetParent();

我也试过“GetParent()->PostMessage(........);”,但仍然抛出异常。

我在 CDialog 中使用此方法。

我注意到 CWnd 成员 m_hWnd 有时是 0x00000000 或 0x00000001。在另一台计算机上,我没有收到此异常。这是项目设置或我的代码中的问题吗?

4

1 回答 1

2

您收到一个断言而不是异常。

这是 VS 2010 的实现:

ASSERT(::IsWindow(m_hWnd)); return CWnd::FromHandle(::GetParent(m_hWnd));

您的 m_hWnd 不是窗口...

于 2013-02-19T13:08:04.537 回答