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 );

  • 相关阅读:
    【BZOJ 2916】 2916: [Poi1997]Monochromatic Triangles (容斥)
    【BZOJ 2024】 2024: [SHOI2009] 舞会 (容斥原理+高精度)
    【BZOJ 3235】 3235: [Ahoi2013]好方的蛇 (单调栈+容斥原理)
    【BZOJ 4710】 4710: [Jsoi2011]分特产 (容斥原理)
    【BZOJ 1853】 1853: [Scoi2010]幸运数字 (容斥原理)
    【BZOJ 3812】 3812: 主旋律 (容斥原理**)
    【BZOJ 2839】 2839: 集合计数 (容斥原理)
    POJ2635——The Embarrassed Cryptographer(高精度取模+筛选取素数)
    POJ2533——Longest Ordered Subsequence(简单的DP)
    POJ2531——Network Saboteur(随机化算法水一发)
  • 原文地址:https://www.cnblogs.com/jillzhang/p/664657.html
Copyright © 2011-2022 走看看