149 lines
4.6 KiB
C#
149 lines
4.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Runtime.InteropServices;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Exferia_Actualizacion_BD._3_Vistas
|
|
{
|
|
public partial class P_Personalizada : Form
|
|
{
|
|
#region Librerias Externas
|
|
[DllImport("dwmapi.dll")]
|
|
public static extern int DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS pMarInset);
|
|
|
|
[DllImport("dwmapi.dll")]
|
|
public static extern int DwmSetWindowAttribute(IntPtr hwnd, int attr, ref int attrValue, int attrSize);
|
|
|
|
[DllImport("dwmapi.dll")]
|
|
public static extern int DwmIsCompositionEnabled(ref int pfEnabled);
|
|
|
|
#endregion
|
|
|
|
|
|
private bool g_bol_Seleccionada;
|
|
private int g_int_X, g_int_Y;
|
|
|
|
public P_Personalizada()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void P_Personalizada_MouseDown(object sender, MouseEventArgs e)
|
|
{
|
|
g_bol_Seleccionada = true;
|
|
g_int_X = e.X;
|
|
g_int_Y = e.Y;
|
|
}
|
|
|
|
private void P_Personalizada_MouseMove(object sender, MouseEventArgs e)
|
|
{
|
|
if (g_bol_Seleccionada)
|
|
{
|
|
SetDesktopLocation(Cursor.Position.X - g_int_X, Cursor.Position.Y - g_int_Y);
|
|
}
|
|
}
|
|
|
|
private void P_Personalizada_Resize(object sender, EventArgs e)
|
|
{
|
|
pnl_BordeIzquierdo.Size = new Size(2, Height - 3);
|
|
|
|
pnl_BordeDerecho.Location = new Point(Width - 3, pnl_BordeDerecho.Location.Y);
|
|
pnl_BordeDerecho.Size = new Size(2, Height - 3);
|
|
|
|
pnl_BordeInferior.Location = new Point(pnl_BordeInferior.Location.X, Height - 3);
|
|
pnl_BordeInferior.Size = new Size(Width - 4, 2);
|
|
|
|
}
|
|
|
|
private void P_Personalizada_MouseUp(object sender, MouseEventArgs e)
|
|
{
|
|
g_bol_Seleccionada = false;
|
|
}
|
|
|
|
#region Crear Sombra de la pantalla
|
|
protected override void WndProc(ref Message m)
|
|
{
|
|
//Sombra de la pantalla ..................................................
|
|
if (m.Msg == WM_NCPAINT)// box shadow
|
|
{
|
|
if (g_bol_HabilitarSombra)
|
|
{
|
|
var v = 2;
|
|
DwmSetWindowAttribute(Handle, 2, ref v, 4);
|
|
MARGINS margins = new MARGINS()
|
|
{
|
|
bottomHeight = 1,
|
|
leftWidth = 1,
|
|
rightWidth = 1,
|
|
topHeight = 1
|
|
};
|
|
DwmExtendFrameIntoClientArea(Handle, ref margins);
|
|
}
|
|
}
|
|
|
|
base.WndProc(ref m);
|
|
}
|
|
|
|
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
|
|
private static extern IntPtr CreateRoundRectRgn
|
|
(
|
|
int nLeftRect, // x-coordinate of upper-left corner
|
|
int nTopRect, // y-coordinate of upper-left corner
|
|
int nRightRect, // x-coordinate of lower-right corner
|
|
int nBottomRect, // y-coordinate of lower-right corner
|
|
int nWidthEllipse, // height of ellipse
|
|
int nHeightEllipse // width of ellipse
|
|
);
|
|
|
|
private bool g_bol_HabilitarSombra; // variables for box shadow
|
|
private const int CS_DROPSHADOW = 0x00020000;
|
|
private const int WM_NCPAINT = 0x0085;
|
|
private const int WM_ACTIVATEAPP = 0x001C;
|
|
|
|
public struct MARGINS // struct for box shadow
|
|
{
|
|
public int leftWidth;
|
|
public int rightWidth;
|
|
public int topHeight;
|
|
public int bottomHeight;
|
|
}
|
|
|
|
private const int WM_NCHITTEST = 0x84; // variables for dragging the form
|
|
private const int HTCLIENT = 0x1;
|
|
private const int HTCAPTION = 0x2;
|
|
|
|
protected override CreateParams CreateParams
|
|
{
|
|
get
|
|
{
|
|
g_bol_HabilitarSombra = CheckAeroEnabled();
|
|
|
|
CreateParams cp = base.CreateParams;
|
|
if (!g_bol_HabilitarSombra)
|
|
cp.ClassStyle |= CS_DROPSHADOW;
|
|
|
|
return cp;
|
|
}
|
|
}
|
|
|
|
private bool CheckAeroEnabled()
|
|
{
|
|
if (Environment.OSVersion.Version.Major >= 6)
|
|
{
|
|
int enabled = 0;
|
|
DwmIsCompositionEnabled(ref enabled);
|
|
return (enabled == 1) ? true : false;
|
|
}
|
|
return false;
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
} |