Re[2]: Debug Assertion Failed
От: Maxidrom  
Дата: 17.01.08 12:50
Оценка:
КЛ>Приведи название метода и код вокруг
Привожу:

BOOL CAxFTCtrl::CreateControlWindow(HWND hWndParent, const CRect& rcPos, 
                                      LPCRECT prcClip)

{
   if (NULL == m_hWnd)
   {
      // If window doesn't exist, create it.
      // Test if:
      // we're not subclassing a Windows control, or
      // container reflects messages for us...
      DWORD dwStyle   = WS_VISIBLE|WS_CHILD|WS_CLIPSIBLINGS|WS_CLIPCHILDREN;
      DWORD dwExStyle = WS_EX_NOPARENTNOTIFY;

      if (m_sBorderStyle)
         dwStyle |= WS_BORDER;

      if (!m_bEnabled)
         dwStyle |= WS_DISABLED;

      if (m_sAppearance)
         dwExStyle |= WS_EX_CLIENTEDGE;

      // we create normally if:
      //       (we're not subclassing -or- the container reflects)
      // -and- the container autoclips for us
      m_bAutoClip = TRUE;

      if ((!IsSubclassedControl() || m_bMsgReflect) && m_bAutoClip)
      {
         // Just create the control's window.
         
         VERIFY(AfxDeferRegisterClass(AFX_WNDOLECONTROL_REG));
         CreateEx (dwExStyle, AFX_WNDOLECONTROL, m_strText, dwStyle,
                 rcPos.left, rcPos.top, rcPos.Width(), rcPos.Height(),hWndParent, 0);
// КАК Я ПРОВЕРИЛ ЗАТЫКАЕТСЯ ЗДЕСЬ     
      }
      else    // ...we're subclassing a Windows control.
      {
         if (NULL == m_pReflect)
         {
            // Create a window to reflect notification messages.

            m_pReflect = new CReflectorWnd;

            if (NULL == prcClip)
               prcClip = rcPos;

            if (!m_pReflect->Create(prcClip, hWndParent))
            {
               // If m_pReflect->Create failed, then m_pReflect deleted itself.
               m_pReflect = NULL;
            }
         }
         else
         {
            // Reflector window already exists... just reparent it.
            if (m_pReflect->m_hWnd != NULL)
            {
               ::SetParent(m_pReflect->m_hWnd, hWndParent);

               ::SetWindowPos (m_pReflect->m_hWnd, NULL, 0, 0, 0, 0,
                              SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_SHOWWINDOW);
            }
         }

         if (m_pReflect != NULL && m_pReflect->m_hWnd != NULL)
         {
            // Create the control's window.

            CreateEx (dwExStyle, NULL, m_strText, dwStyle,
                      m_ptOffset.x, m_ptOffset.y, rcPos.Width(), rcPos.Height(),
                      m_pReflect->m_hWnd, 0);
            if (NULL == m_hWnd)
            {
               // Window creation failed: cleanup.
               m_pReflect->DestroyWindow();
               m_pReflect = NULL;
            }
         }
      }

      // Set the new window's font.
      OnFontChanged();
   }
   else
   {
      // If window does exist, reparent it...
      CWnd* pWndOuter = GetOuterWindow();

      ASSERT(pWndOuter != NULL);

      if (::GetParent(pWndOuter->m_hWnd) != hWndParent)
         ReparentControlWindow(pWndOuter->m_hWnd, hWndParent);

      ::SetWindowPos(pWndOuter->m_hWnd, NULL, 0, 0, 0, 0,
                     SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE|SWP_SHOWWINDOW);

      // And then reposition it...
      OnSetObjectRects(rcPos, prcClip);
   }

   ASSERT(m_hWnd != NULL);
   return (m_hWnd != NULL);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.