• winform中的Balloon提示


    1.扩展类库
    namespace DvsCC
    {
        
    using System;
        
    using System.Drawing;
        
    using System.Reflection;
        
    using System.Runtime.InteropServices;
        
    using System.Windows.Forms;
        
    /// <summary>
        
    /// Summary description for NativeMethods.
        
    /// </summary>

        public class NativeMethods
        
    {
            
    private const long WS_POPUP = 0x80000000;
            
    private const long TTS_BALLOON = 0x40;
            
    private const long TTS_NOFADE = 0x20;
            
    private const int GWL_STYLE = -16;
            
    private const int WM_USER = 0x0400;
            
    private const int TTM_SETTIPBKCOLOR = WM_USER + 19;

            
    private NativeMethods() {}


            
    public static void SetBalloonStyle ( ToolTip toolTip )
            
    {
                NativeWindow window 
    = GetNativeWindow ( toolTip );
                NativeMethods.SetWindowLong ( window.Handle, GWL_STYLE , WS_POPUP 
    | TTS_BALLOON | TTS_NOFADE );
                
            }

        
            
    public static void SetBackColor ( ToolTip toolTip, Color color )
            
    {
                
    int backColor =  ColorTranslator.ToWin32( color );
                NativeWindow window 
    = GetNativeWindow ( toolTip );
                
    //setting back color
                SendMessage( window.Handle, TTM_SETTIPBKCOLOR, backColor, 0 );  
            }


            
    private static NativeWindow GetNativeWindow ( ToolTip toolTip )
            
    {
                FieldInfo windowField 
    = toolTip.GetType().GetField("window", BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance );
                NativeWindow window  
    = (NativeWindow)windowField.GetValue ( toolTip );
                
    if ( window.Handle == IntPtr.Zero ) throw new ArgumentNullException ( "window handle is not crated." );
                
    return window;
            }


            [DllImport(
    "user32.dll")]
            
    private static extern long SetWindowLong(IntPtr hwnd,int index,long val);

            [DllImport(
    "user32.dll")]
            
    private static extern int SendMessage( IntPtr hwnd, int msg, int wParam, int lParam);
        }

     
    }


    2.使用方法
    NativeMethods.SetBalloonStyle ( toolTip1 );

  • 相关阅读:
    PAT 甲级 1057 Stack(树状数组解法)
    LeetCode 815 公交路线
    201771010123汪慧和《面向对象程序设计JAVA》第六周实验总结
    汪慧和201771010123《面向对象程序设计JAVA》第四周实验总结
    汪慧和201771010123《面向对象程序设计(Java)》第三周学习总结
    201771010123汪慧和《面向对象程序设计Java》第二周学习总结
    汪慧和201771010123
    201771010119穷吉1
    学习进度条201771010119穷吉
    穷吉201771010119*
  • 原文地址:https://www.cnblogs.com/jillzhang/p/664657.html
Copyright © 2020-2023  润新知