zoukankan      html  css  js  c++  java
  • 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 );

  • 相关阅读:
    Linux实战教学笔记30:Nginx反向代理与负载均衡应用实践
    Linux实战教学笔记29:MySQL数据库企业级应用实践
    Linux实战教学笔记28:企业级LNMP环境应用实践
    leetcode-Basic Calculator II
    java中 == 和 equals()方法的区别
    Java中为什么String不可变?
    关于Java的构造器和直接为成员变量赋值的区别
    Java修饰符的访问权限
    java深拷贝和浅拷贝
    leetcode-Length of Last Word
  • 原文地址:https://www.cnblogs.com/jillzhang/p/664657.html
Copyright © 2011-2022 走看看