Home > Software engineering >  A simple MFC procedures, debugging, no problem, running is always wrong, and bosses to help have a l
A simple MFC procedures, debugging, no problem, running is always wrong, and bosses to help have a l

Time:09-20



Afxcmn. Inl line 348 is:
_AFXCMN_INLINE void CToolTipCtrl: : RelayEvent (LPMSG LPMSG)
{ASSERT (: : IsWindow (m_hWnd)); : : SendMessage (m_hWnd, TTM_RELAYEVENT, 0, (LPARAM) lpMsg); }


My small white, please help

CodePudding user response:

Posted by mistake is the window handle of the ToolTipCtrl invalid
Click retry to see if the call stack, call RelayEvent to determine whether the window handle before effective
It's about
BOOL CMyTTXX: : PreTranslateMessage (MSG * pMsg)
{
If (m_ToolTipCtrl. M_hWnd)
M_ToolTipCtrl. RelayEvent (pMsg);

Return __super: : PreTranslateMessage (pMsg);
}

CodePudding user response:

ASSERT (: : IsWindow (m_hWnd)); This pop up hints that the window is invalid can be destroy, after RelayEvent is called, when can check window was destroy, a breakpoint in a WM_DESTROY look

CodePudding user response:

ASSERT (: : IsWindow (m_hWnd));

Should do not have the right to create m_hWnd corresponding window

CodePudding user response:

Collapsed in the pop-up dialog box, press the corresponding button to enter debugging press Alt + 7 key to view the Call Stack, namely "the Call Stack" from the inside to the following out of from the inner to outer function Call history, double-click a row to the cursor to the Call of the source code or assembly instruction, don't understand when double click on the next line, until we can read ,
  • Related