private void UpdateAlphaMask(byte opacity) { Skybound.VisualTips.VisualTipWindow.BLENDFUNCTION blendfunction; Skybound.VisualTips.VisualTipWindow.POINT point2; System.IntPtr intPtr1 = Skybound.VisualTips.VisualTipWindow.GetDC(System.IntPtr.Zero); System.IntPtr intPtr2 = Skybound.VisualTips.VisualTipWindow.CreateCompatibleDC(intPtr1); System.IntPtr intPtr3 = System.IntPtr.Zero; try { intPtr3 = Skybound.VisualTips.VisualTipWindow.SelectObject(intPtr2, HLayeredWindowBitmap); Skybound.VisualTips.VisualTipWindow.POINT point1 = new Skybound.VisualTips.VisualTipWindow.POINT(Left, Top); Skybound.VisualTips.VisualTipWindow.SIZE size = new Skybound.VisualTips.VisualTipWindow.SIZE(LayeredWindowSize.Width, LayeredWindowSize.Height); point2 = new Skybound.VisualTips.VisualTipWindow.POINT(); blendfunction = new Skybound.VisualTips.VisualTipWindow.BLENDFUNCTION(); blendfunction.bytBlendOp = 0; blendfunction.bytBlendFlags = 0; blendfunction.bytSourceConstantAlpha = opacity; blendfunction.bytAlphaFormat = 1; Skybound.VisualTips.VisualTipWindow.UpdateLayeredWindow(Handle, intPtr1, ref point1, ref size, intPtr2, ref point2, 0, ref blendfunction, 2); } finally { Skybound.VisualTips.VisualTipWindow.ReleaseDC(System.IntPtr.Zero, intPtr1); Skybound.VisualTips.VisualTipWindow.SelectObject(intPtr2, intPtr3); Skybound.VisualTips.VisualTipWindow.DeleteDC(intPtr2); } }
private static extern System.IntPtr UpdateLayeredWindow(System.IntPtr hwnd, System.IntPtr hdcDst, ref Skybound.VisualTips.VisualTipWindow.POINT pptDst, ref Skybound.VisualTips.VisualTipWindow.SIZE psize, System.IntPtr hdcSrc, ref Skybound.VisualTips.VisualTipWindow.POINT pprSrc, int crKey, ref Skybound.VisualTips.VisualTipWindow.BLENDFUNCTION pblend, int dwFlags);