Print Page | Close Window

CXTPToolTipContextToolTip and long text

Printed From: Codejock Forums
Category: Codejock Products
Forum Name: Toolkit Pro
Forum Description: Topics Related to Codejock Toolkit Pro
URL: http://forum.codejock.com/forum_posts.asp?TID=9978
Printed Date: 14 November 2025 at 8:18pm
Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com


Topic: CXTPToolTipContextToolTip and long text
Posted By: jimmy
Subject: CXTPToolTipContextToolTip and long text
Date Posted: 27 March 2008 at 11:25am
Hello,

I use CXTPToolTipContextToolTip on a dialog application.
How can i set a long tooltip text (more than 80 chars ) ?

  Jimmy




Replies:
Posted By: Oleg
Date Posted: 28 March 2008 at 6:51am
Hi,
I don't think there is such restriction. How do you set text ?


-------------
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS


Posted By: jimmy
Date Posted: 28 March 2008 at 7:53am
Hi,

In OnInitDialog i call

    EnableToolTips();
    m_moduleContext.SetModuleToolTipContext();

    ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)
    ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)

And use BOOL CExResizeDialog::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult)
from TooltipContextDialog sample.
And here the function copy the string from AfxLoadString into the
pTTTA->szText buffer. And this buffer has only 80 bytes.

  Jimmy



Posted By: gjasny
Date Posted: 28 March 2008 at 1:01pm
Hi,

1. Catch A and W-Versions:
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, OnToolTipText)


2. Create two member variables:

CStringA m_TooltipStringA;
CStringW m_TooltipStringW;


3. Beside the ususal black magic in OnToolTipText do the following:

[...]

TOOLTIPTEXTA* pTTTA = reinterpret_cast<TOOLTIPTEXTA*>(pNMHDR);
TOOLTIPTEXTW* pTTTW = reinterpret_cast<TOOLTIPTEXTW*>(pNMHDR);

[...]

if (pNMHDR->code == TTN_NEEDTEXTA)
{
    m_TooltipStringA = [assign long tool tip text here]
    pTTTA->lpszText  = m_TooltipStringA.GetBuffer(0);
}
else if (pNMHDR->code == TTN_NEEDTEXTW)
{
    m_TooltipStringW = [assign long tool tip text here]
    pTTTW->lpszText  = m_TooltipStringW.GetBuffer(0);
}

At least this works for me.

Gregor


Posted By: jimmy
Date Posted: 31 March 2008 at 4:59am
I see that this was changed from 11.1.3 to 11.2.2.
In 11.1.3 only used szText[80]. And in 11.2.2 lpszText will be used.

  Jimmy





Posted By: Simon HB9DRV
Date Posted: 31 March 2008 at 5:10am
Originally posted by jimmy jimmy wrote:

I see that this was changed from 11.1.3 to 11.2.2.
In 11.1.3 only used szText[80]. And in 11.2.2 lpszText will be used.
 
Which file is this?


-------------
Simon HB9DRV


Posted By: jimmy
Date Posted: 31 March 2008 at 5:12am
In file: Common\XTPToolTipContext.cpp

  Jimmy




Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.04 - http://www.webwizforums.com
Copyright ©2001-2021 Web Wiz Ltd. - https://www.webwiz.net