Re: "First Record" in tooltip
My guess is that it's because you are creating the TOOLTIPTEXT object on the
stack rather than using the pointer passed in.
Here's a handler that works for me. Note that I make the CString static so
the string is still around when the routine exits. Note also that I am
assigning the pointer to the CString buffer rather than copying a string.
This example only displays the text in the combo as the tooltip. Not too
tricky, but it would be easy enough to replace that part with an entry from
the string table in the resources.
Tom
BOOL CMyDlg::OnToolTip(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT*)pNMHDR;
UINT nID = pNMHDR->idFrom;
static CString cs;
if(pTTT->uFlags & TTF_IDISHWND) {
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if(nID) {
switch(nID) {
case IDC_MY_COMBO:
{
GetDlgItem(IDC_FILTER_COMBO)->GetWindowText(cs);
pTTT->lpszText = cs.GetBuffer();
}
break;
default:
pTTT->lpszText = _T("");
break;
}
pTTT->hinst = AfxGetResourceHandle();
return(true);
}
}
return(false);
}
"baha" <baha@discussions.microsoft.com> wrote in message
news:B3F2CE1E-5768-4CAC-84B2-CCFFF42052F9@microsoft.com...
Here is my OnToolTipNotify source. In it I do some hittesting and then I
try
to display some coordinate data relevant to the bitmap I pass my mouse
over.
Thanks.
BOOL CNetQuaSimView::OnToolTipNeedText(UINT id, NMHDR * pNMHDR, LRESULT *
pResult)
{
BOOL bHandledNotify = FALSE;
CPoint CursorPos;
VERIFY(::GetCursorPos(&CursorPos));
ScreenToClient(&CursorPos);
CRect ClientRect;
GetClientRect(ClientRect);
// Make certain that the cursor is in the client rect, because the
// mainframe also wants these messages to provide tooltips for the
// toolbar.
if (ClientRect.PtInRect(CursorPos))
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
m_pBuildingHit = HitTest(CursorPos);
UINT nID = pNMHDR->idFrom;
if (m_pBuildingHit)
{
CString strTip;
const CPoint& Origin = m_pBuildingHit->GetBuildingOrigin();
strTip.Format(_T("Origin: (%d, %d)"), Origin.x, Origin.y);
ASSERT(strTip.GetLength() < sizeof(pTTT->szText));
::wcscpy_s(pTTT->szText, strTip);
m_ToolTip.SendMessage(TTM_SETTIPTEXTCOLOR, 0L);
}
else
{
pTTT->szText[0] = 0;
}
bHandledNotify = TRUE;
}
return bHandledNotify;
}
"Ajay Kalra" wrote:
Your code is responsible for showing this text. Is OnToolTipNotify
getting
called? Its OK to include the soure of that method for us to see whats
going
on.
--
Ajay Kalra [MVP - VC++]
ajaykalra@yahoo.com
"baha" <baha@discussions.microsoft.com> wrote in message
news:C8D8CB15-C413-4FC6-9BF4-DEE8E8EACA95@microsoft.com...
I'm simply displaying a few bitmaps in my SDI app. In OnToolTipNotify I
do
some hittesting and I try to fill in my data (a CString after "Format")
into
pTTT->szText. I've also tried pTTT->lpszText. However, whenever I pass
the
mouse over my bitmaps all I get is the "First Record" text. If you like
I
can
include the source I am using for OnToolTipNotify.
Thanks.
"Ajay Kalra" wrote:
My tooltip seems to work fine since it appears the way I expect it
to.
..
However, no matter what I try the tooltip always displays "First
Record". Can
someone explain to me why this happening and how to solve it.
What tooltip is this (toolbar or on a control in a dialog)? How are
you
changing it(dynamically or resource editor)?
---
Ajay