public void Activate(ref VirtualTreeHitInfo hit, ref ExtraHitInfo extraInfo, ref Point mousePos, bool immediateActivation) { var hWnd = Handle.ToInt32(); if (hWnd == 0) { return; } var ctrlhWnd = Handle; NativeMethods.SendMessage(ctrlhWnd, NativeMethods.TTM_ACTIVATE, 0, hWnd); if (hit.Row != VirtualTreeConstant.NullIndex) { var ti = new NativeMethods.TOOLINFO(); ti.SetSize(); ti.uId = hWnd; ti.uFlags = NativeMethods.TTF_IDISHWND; ti.rect = NativeMethods.RECT.FromXYWH( extraInfo.ClippedItemRectangle.X, extraInfo.ClippedItemRectangle.Y, extraInfo.ClippedItemRectangle.Width, extraInfo.ClippedItemRectangle.Height); NativeMethods.SendMessage( ctrlhWnd, NativeMethods.TTM_SETDELAYTIME, NativeMethods.TTDT_INITIAL, immediateActivation ? 0 : 250); NativeMethods.SendMessage(ctrlhWnd, NativeMethods.TTM_NEWTOOLRECT, 0, ref ti); NativeMethods.SendMessage(ctrlhWnd, NativeMethods.TTM_ACTIVATE, 1, hWnd); Font = extraInfo.LabelFont; myFormat = extraInfo.LabelFormat; myFullLabelRectangle = extraInfo.FullLabelRectangle; myActivatingMousePos = mousePos; } }
protected override void CreateHandle() { var icc = new NativeMethods.INITCOMMONCONTROLSEX(); icc.dwICC = NativeMethods.ICC_TAB_CLASSES; NativeMethods.InitCommonControlsEx(icc); base.CreateHandle(); if (IsHandleCreated) { var ti = new NativeMethods.TOOLINFO(); ti.SetSize(); ti.uFlags = NativeMethods.TTF_IDISHWND | NativeMethods.TTF_TRANSPARENT; ti.hwnd = myParent.Handle; ti.uId = (int)ti.hwnd; ti.lpszText = NativeMethods.LPSTR_TEXTCALLBACK; NativeMethods.SendMessage(base.Handle, NativeMethods.TTM_ADDTOOL, 0, ref ti); NativeMethods.SendMessage(base.Handle, NativeMethods.TTM_SETDELAYTIME, NativeMethods.TTDT_RESHOW, 0); } }