using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace Mesoft.Control
{
public partial class TitleBar : UserControl
{
public const int WM_NCLBUTTONDOWN = 0xA1;
public const int HT_CAPTION = 0x2;
[DllImportAttribute("user32.dll")]
public static extern int SendMessage(IntPtr hWnd,int Msg, int wParam, int lParam);
[DllImportAttribute("user32.dll")]
public static extern bool ReleaseCapture();
public TitleBar()
{
InitializeComponent();
}
private void TitleBar_Load(object sender, EventArgs e)
{
this.Dock = DockStyle.Top;
lblTitle.ForeColor = Color.White;
this.SendToBack();
this.lblTitle.Font = new System.Drawing.Font("Calibri", 11.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));
}
private void pbTitle_MouseDown(object sender, MouseEventArgs e)
{
}
private void pbTitle_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (frmControlBox.Maximize)
{
if (this.ParentForm.WindowState == FormWindowState.Maximized)
{
this.ParentForm.WindowState = FormWindowState.Normal;
this.ParentForm.Show();
}
else if (this.ParentForm.WindowState == FormWindowState.Normal)
{
this.ParentForm.WindowState = FormWindowState.Maximized;
this.ParentForm.Show();
}
}
}
private void Caption_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Left)
{
if ((e.Clicks == 1) && (this.ParentForm.WindowState != FormWindowState.Maximized))
{
ReleaseCapture();
SendMessage(this.ParentForm.Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0);
}
}
}
[Category("Mesoft")]
[Description("Gets or sets the font of the title")
public Font TitleFont
{
set
{
lblTitle.Font = value;
}
get
{
return lblTitle.Font;
}
}
[Category("Mesoft")]
[Description("Gets or sets the title of the title bar")]
public string Titl
{
set
{
lblTitle.Text = value;
}
get
{
return lblTitle.Text;
}
}
[Category("Mesoft")]
[Description("Gets or sets the title align")]
public ContentAlignment TitleTextAlign
{
set
{
lblTitle.TextAlign = value;
}
get
{
return lblTitle.TextAlign
}
}
[Category("Mesoft")]
[Description("Gets or sets the title text color")]
public Color TitleForeColor
{
set
{
lblTitle.ForeColor = value;
}
get
{
return lblTitle.ForeColor;
}
}
[Category("Mesoft")]
[Description("Gets or sets the title background color")]
[DisplayName("TitleColor")]
public Color TitleBackColor
{
set
{
lblTitle.BackColor = value;
}
get
{
return lblTitle.BackColor;
}
}
[Category("Mesoft")]
[Description("Gets or sets maximize button visibility")]
public bool Maximize
{
set
{
frmControlBox.Maximize = value;
}
get
{
return frmControlBox.Maximize;
}
}
[Category("Mesoft")]
[Description("Gets or sets minimize button visibility")]
public bool Minimize
{
set
{
frmControlBox.Minimize = value;
}
get
{
return frmControlBox.Minimize;
}
}
[Category("Mesoft")]
[Description("Gets or sets close button visibility")]
public bool Close
{
set
{
frmControlBox.Close = value;
}
get
{
return frmControlBox.Close;
}
}
private void lblTitle_DoubleClick(object sender, EventArgs e)
{
if (frmControlBox.Maximize)
{
if (this.ParentForm.WindowState == FormWindowState.Maximized)
{
this.ParentForm.WindowState = FormWindowState.Normal;
this.ParentForm.Show();
}
else if (this.ParentForm.WindowState == FormWindowState.Normal)
{
this.ParentForm.WindowState = FormWindowState.Maximized;
this.ParentForm.Show();
}
}
}
}
}
No comments:
Post a Comment