Guest User

Untitled

a guest
Jun 25th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. INT_PTR SomeFunction(HWND hWndChild, TOOLINFO *pTI)
  2. {
  3. if (hWndChild != NULL) // Your HWND being tested
  4. {
  5. // return positive hit if control ID isn't -1
  6. INT_PTR nHit = _AfxGetDlgCtrlID(hWndChild);
  7. // Replace with GetDlgCtrlID().
  8.  
  9. // hits against child windows always center the tip
  10. if (pTI != NULL && pTI->cbSize >= sizeof(AFX_OLDTOOLINFO))
  11. {
  12. // setup the TOOLINFO structure
  13. pTI->hwnd = m_hWnd;
  14. pTI->uId = (UINT_PTR)hWndChild;
  15. pTI->uFlags |= TTF_IDISHWND;
  16. pTI->lpszText = LPSTR_TEXTCALLBACK;
  17.  
  18. // set TTF_NOTBUTTON and TTF_CENTERTIP if it isn't a button
  19. if (!(::SendMessage(hWndChild, WM_GETDLGCODE, 0, 0) & DLGC_BUTTON))
  20. pTI->uFlags |= TTF_NOTBUTTON|TTF_CENTERTIP;
  21. }
  22. return nHit;
  23. }
  24. return -1; // not found
  25. }
  26.  
  27. HWND hToolTipWnd = NULL;
  28.  
  29. BOOL GetToolTipText(HWND hWnd, UINT nId, std::wstring& strTooltip)
  30. {
  31. hToolTipWnd = NULL;
  32. EnumWindows(FindToolTip, (LPARAM)hWnd);
  33.  
  34. if (hToolTipWnd == NULL)
  35. return FALSE;
  36.  
  37. WCHAR szToolText[256];
  38. TOOLINFO ti;
  39. ti.cbSize = sizeof(ti);
  40. ti.hwnd = hWnd;
  41. ti.uId = nId;
  42. ti.lpszText = szToolText;
  43.  
  44. SendMessage(hToolTipWnd, TTM_GETTEXT, 256, (LPARAM)&ti);
  45. strTooltip = szToolText;
  46.  
  47. return TRUE;
  48. }
  49.  
  50. BOOL CALLBACK FindToolTip(HWND hWnd, LPARAM lParam)
  51. {
  52. WCHAR szClassName[256];
  53. if (GetClassName(hWnd, szClassName, 256) == 0)
  54. return TRUE;
  55.  
  56. if (wcscmp(szClassName, L"tooltips_class32") != 0)
  57. return TRUE;
  58. if (GetParent(hWnd) != (HWND)lParam)
  59. return TRUE;
  60.  
  61. hToolTipWnd = hWnd;
  62.  
  63. return FALSE;
  64. }
Add Comment
Please, Sign In to add comment