У меня есть некая функция которая принимает один из параметров ПарентВинвов:
| Код | Create(const RECT& rect, CWnd *parent,UINT nID);
|
я передаю парент так:
| Код | Create(rect,GetParent(),IDC_GRID);
|
Но тогда выбрасивает Асерт:
| Код | ASSERT(pParentWnd->GetSafeHwnd());
|
Если сделать так:
| Код | Create(rect,CWnd::FindWindow(NULL,L"SomeWindow"),IDC_GRID);
|
то тогда выдрасивает такой асерт:
| Код | void AFXAPI AfxHookWindowCreate(CWnd* pWnd) { _AFX_THREAD_STATE* pThreadState = _afxThreadState.GetData(); if (pThreadState->m_pWndInit == pWnd) return;
if (pThreadState->m_hHookOldCbtFilter == NULL) { pThreadState->m_hHookOldCbtFilter = ::SetWindowsHookEx(WH_CBT, _AfxCbtFilterHook, NULL, ::GetCurrentThreadId()); if (pThreadState->m_hHookOldCbtFilter == NULL) AfxThrowMemoryException(); } ASSERT(pThreadState->m_hHookOldCbtFilter != NULL); ASSERT(pWnd != NULL); ASSERT(pWnd->m_hWnd == NULL); // only do once // здесь Асерт :(
ASSERT(pThreadState->m_pWndInit == NULL); // hook not already in progress pThreadState->m_pWndInit = pWnd; }
|
Вчом проблема...? Вот исходники... |