Re: ToolTip problem in a child dialog box
On 10 avr, 19:00, Dan Bloomquist <publi...@lakeweb.com> wrote:
Phil wrote:
Hi
I am using MS VC 6.0 and Vista.
I have a dialog box containing a CTabCtrl control.
I put a child dialog box for each tab.
In each child dialog box, I put a number of controls (CEdit...).
For each control, I specify a tooltip.
So far, so good.
Here is my problem:
In Debug mode (not in Release mode), after the tooltip appears, if I
move the mouse so that the cursor enters the tooltip area (before the
tooltip disappears), I get
ASSERT(::IsWindow(m_hWnd));
in wincore.cpp.
It is my understanding that the program is looking for a tooltip for
the tooltip, and that the tooltip is not recognized has a valid
window !
Can someone tell me what I did wrong and how to solve this problem?
Thanks!
Phil
////////////////////////////////////
BOOL CTab::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID =pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
//Here, make sure you have a tip window
// pNMHDR->idFrom is actually the HWND of the control
nID= ::GetDlgCtrlID( reinterpret_cast<HWND>( (DWORD_PTR)nID ) );
CToolTipCtrl* pToolTip= AfxGetModuleThreadState( )->m_pToolTip;
if( nID && pToolTip && pToolTip->GetSafeHwnd( ) )
{
pTTT->lpszText = MAKEINTRESOURCE(nID);
pTTT->hinst = AfxGetInstanceHandle();
return(TRUE);
}
}
return(FALSE);
}
///////////////////////////////////////////////////////
Best, Dan.
Thank you for your reply, but I have two problems:
In my program, the AfxGetModuleThreadState( ) does not have a
variable named m_pToolTip.
Second, I would like to know why I get this ASSERT() message, so that
I can eliminate the problem instead of finding a patch to it.
TXS
Phil