⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nativemethods.cs

📁 该即时通讯系统系统能够实现像QQ一样的通讯功能
💻 CS
字号:
namespace LanMsg.ToolTipBalloon
{
	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);
  	}
 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -