Re: Transparent tooltip gets focus with the manifest-style under W
On Mon, 25 Jun 2007 03:39:00 -0700, ASCO DATA GmbH
<ASCODATAGmbH@discussions.microsoft.com> wrote:
Hi. I tested with InitCommonControls and i am unable to click through the
tooltip. I don't know what is wrong... It works at you by clicking on the
tooltip, the OK button recieves the command to close?
Yes, it does.
This is the manifest file I embedded in resources:
---- Start of Manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
xmlns="urn:schemas-microsoft-com:asm.v1"
manifestVersion="1.0">
<assemblyIdentity
processorArchitecture="x86"
version="5.1.0.0"
type="win32"
name="test.exe"/>
<description>Test Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
publicKeyToken="6595b64144ccf1df"
language="*"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>
---- End of Manifest
The platform is Windows XP SP2 with VC++6 SP6.
This is the code (I encapsulated the tool-tip test in TestToolTip
method, and call it from OnOK handler):
<CODE>
void CToolTipTestDlg::ToolTipTest()
{
TOOLINFO TI;
static long nIndex = 0;
CRect rectTemp;
CFont* pfont;
CWnd* pwndOK;
CString text;
text.Format( _T("nIndex = %d"), nIndex );
PREPARE_STRUCT( TI )
TI.lpszText = const_cast< LPTSTR >( static_cast< LPCTSTR >( text )
);
if(IsWindow(m_wndToolTip) == FALSE)
{
m_wndToolTip.Create(this, TTS_ALWAYSTIP | TTS_NOPREFIX);
m_wndToolTip.SetMaxTipWidth(SHRT_MAX);
//Add tool
TI.uFlags = TTF_TRACK | TTF_TRANSPARENT;
m_wndToolTip.SendMessage(TTM_ADDTOOL, 0, (LPARAM)&TI);
}
else
{
//Modify the text of the tooltip.
m_wndToolTip.SendMessage(TTM_UPDATETIPTEXT, 0, (LPARAM)&TI);
}
//Take over the font from the dialog.
pfont = GetFont();
if(pfont != NULL)
{
m_wndToolTip.SetFont(pfont);
}
//Set the position of the tooltip.
pwndOK = GetDlgItem(IDOK);
pwndOK->GetWindowRect(&rectTemp);
m_wndToolTip.SendMessage(TTM_TRACKPOSITION,
0, (LPARAM)MAKELONG(rectTemp.left, rectTemp.top));
//Show tooltip
PREPARE_STRUCT( TI )
m_wndToolTip.SendMessage(TTM_TRACKACTIVATE, TRUE, (LPARAM)&TI);
//Increment the static index
nIndex++;
}
void CToolTipTestDlg::OnOK()
{
ToolTipTest();
CDialog::OnOK();
}
</CODE>
If you give me a valid e-mail address, I can send you a copy of the
VC++ project.
MrAsm