![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
Welcome to Vista Forums we are your forum to discuss Windows Vista x64 and x86 systems. Whether you need help or just want to post an idea you have on Vista, this is the forum for you.
br> |
| |||||||
![]() |
| | Thread Tools | Display Modes |
| | #1 (permalink) |
| Guest
Posts: n/a
| Transparent tooltip gets focus with the manifest-style under Windows XP A Tooltip with TTF_TRANSPARENT and TTF_TRACK tool gets the focus, if I used under Windows XP the manifest-style and click with the mouse on the tooltip. But I want, that the tooltip dispaths the messages to the window, that is under the tooltip. I have searched in the world wide web about this problem, but did not found other persons with the same problem. I have tested other example-applications from www.codeproject.com, with a litle modification (the tooltip was only shown, but not hidden) and the tested applications have the same problem. I don't know, how Microsoft use in the VC6.0 in the Workarea-Window also an tooltip-window, because they haven't the same problem. The following source-code is from my test-application. The program is a simple MFC-dialog-program, the dialog includes an OK- and Cancel-button. m_wndToolTip is from CToolTipCtrl. void CTooltiptestDlg::OnOK() { TOOLINFO TI; char caText[1024]; static long nIndex = 0; CRect rectTemp; CFont* pfont; CWnd* pwndOK; memset(&TI, 0, sizeof(TI)); TI.cbSize = sizeof(TI); sprintf(caText, "nIndex=%d", nIndex); TI.lpszText = caText; 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 memset(&TI, 0, sizeof(TI)); TI.cbSize = sizeof(TI); m_wndToolTip.SendMessage(TTM_TRACKACTIVATE, TRUE, (LPARAM)&TI); //Increment the static index nIndex++; } I haven't called the CToolTipCtrl::RelayEvent-function in CWnd::PreTranslateMessage, because the tool is added with TTF_TRANSPARENT and TTF_TRACK, position with TTM_TRACKPOSITION and showed with TTM_TRACKACTIVATE. Can anybody help me??? Johannes Ody |
|
|
| |