
afxcmn.inl第348行是:
_AFXCMN_INLINE void CToolTipCtrl::RelayEvent(LPMSG lpMsg)
{ ASSERT(::IsWindow(m_hWnd)); ::SendMessage(m_hWnd, TTM_RELAYEVENT, 0, (LPARAM)lpMsg); }
本人小白,求幫忙
uj5u.com熱心網友回復:
按貼出的錯誤 就是 ToolTipCtrl 的視窗句柄無效點擊重試, 看看呼叫堆疊, 呼叫 RelayEvent 之前先判斷下視窗句柄是否有效
差不多是
BOOL CMyTTXX::PreTranslateMessage(MSG* pMsg)
{
if (m_ToolTipCtrl.m_hWnd)
m_ToolTipCtrl.RelayEvent(pMsg);
return __super::PreTranslateMessage(pMsg);
}
uj5u.com熱心網友回復:
是ASSERT(::IsWindow(m_hWnd));這句彈出來的提示,說明這個視窗是無效的可能是被destroy了,之后RelayEvent被呼叫。可以查下視窗是什么時候被destroy的。在WM_DESTROY打個斷點看看uj5u.com熱心網友回復:
ASSERT(::IsWindow(m_hWnd));m_hWnd對應的視窗應該沒有正確的創建
uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/55901.html
標籤:基礎類
