示例#1
0
        private void TooltipAction(Control ctrl, string text, TToolAction action)
        {
            if (ctrl.Parent != null)
            {
                AttachToParent(ctrl.Parent.Handle);

                Rectangle clientRect = new Rectangle(ctrl.Location, ctrl.Size);

                TOOLINFO info = new TOOLINFO();
                info.cbSize   = (uint)Marshal.SizeOf(typeof(TOOLINFO));
                info.uFlags   = (uint)ToolTipFlags.TTF_IDISHWND | (uint)ToolTipFlags.TTF_SUBCLASS;
                info.hwnd     = ctrl.Parent.Handle;
                info.uId      = ctrl.Handle;
                info.lpszText = text; //( text != null ) ? Marshal.StringToHGlobalAuto( text ) : IntPtr.Zero;
                info.rect     = (RECT)clientRect;

                int msg = 0;

                switch (action)
                {
                case TToolAction.INSERT:
                    msg = (int)ToolTipMsg.TTM_ADDTOOLW;
                    Trace.WriteLine("Add", "TOOL ACTION");
                    break;

                case TToolAction.UPDATE:
                    msg = (int)ToolTipMsg.TTM_UPDATETIPTEXTW;
                    Trace.WriteLine("Update Text", "TOOL ACTION");
                    break;

                case TToolAction.REMOVE:
                    msg = (int)ToolTipMsg.TTM_DELTOOLW;
                    Trace.WriteLine("Add", "TOOL ACTION");
                    break;
                }

                int result = WindowsAPI.SendMessage(m_tooltip.Handle, msg, 0, ref info);

                if (result == 0)
                {
                    Trace.WriteLine("Tool Action status FAIL!!!", "Notification");
                }
            }
        }
        private void TooltipAction( Control ctrl, string text, TToolAction action )
        {
            if( ctrl.Parent != null )
              {
            AttachToParent( ctrl.Parent.Handle );

            Rectangle clientRect = new Rectangle( ctrl.Location, ctrl.Size );

            TOOLINFO info = new TOOLINFO();
            info.cbSize   = (uint)Marshal.SizeOf( typeof( TOOLINFO ) );
            info.uFlags   = (uint)ToolTipFlags.TTF_IDISHWND | (uint)ToolTipFlags.TTF_SUBCLASS;
            info.hwnd     = ctrl.Parent.Handle;
            info.uId      = ctrl.Handle;
            info.lpszText = text; //( text != null ) ? Marshal.StringToHGlobalAuto( text ) : IntPtr.Zero;
            info.rect     = (RECT)clientRect;

            int msg = 0;

            switch( action )
            {
              case TToolAction.INSERT:
            msg = (int)ToolTipMsg.TTM_ADDTOOLW;
            Trace.WriteLine( "Add", "TOOL ACTION" );
            break;

              case TToolAction.UPDATE:
            msg = (int)ToolTipMsg.TTM_UPDATETIPTEXTW;
            Trace.WriteLine( "Update Text", "TOOL ACTION" );
            break;

              case TToolAction.REMOVE:
            msg = (int)ToolTipMsg.TTM_DELTOOLW;
            Trace.WriteLine( "Add", "TOOL ACTION" );
            break;
            }

            int result = WindowsAPI.SendMessage( m_tooltip.Handle, msg, 0, ref info );

            if( result == 0 )
            {
              Trace.WriteLine( "Tool Action status FAIL!!!", "Notification" );
            }
              }
        }