111,120
社区成员
发帖
与我相关
我的任务
分享
#region 重写方法
protected override void OnInvalidated(InvalidateEventArgs e)
{
SetReion();
SystemBtnSet();
base.OnInvalidated(e);
}
//重绘窗口
protected override void OnPaint(PaintEventArgs e)
{
try
{
g = e.Graphics;
g.DrawIcon(this.Icon, new Rectangle(12, 12, 16, 16));
g.DrawString(this.Text, this.Font, new SolidBrush(this.ForeColor), 32, 12);
g.SmoothingMode = SmoothingMode.HighQuality; //高质量
g.PixelOffsetMode = PixelOffsetMode.HighQuality; //高像素偏移质量
ImageDrawRect.DrawRect(g, _BacklightImg, ClientRectangle, Rectangle.FromLTRB(_BacklightLTRB.X, _BacklightLTRB.Y, _BacklightLTRB.Width, _BacklightLTRB.Height), 1, 1);
}
catch
{ }
}
//重载WndProc方法
protected override void WndProc(ref Message m)
{
try
{
switch (m.Msg)
{
//窗体客户区以外的重绘消息,一般是由系统负责处理
case Win32.WM_NCPAINT:
break;
//画窗体被激活或者没有被激活时的样子//http://blog.csdn.net/commandos/archive/2007/11/27/1904558.aspx
case Win32.WM_NCACTIVATE:
if (m.WParam == (IntPtr)Win32.WM_FALSE)
{
m.Result = (IntPtr)Win32.WM_TRUE;
}
break;
//在需要计算窗口客户区的大小和位置时发送。通过处理这个消息,应用程序可以在窗口大小或位置改变时控制客户区的内容
case Win32.WM_NCCALCSIZE:
break;
//鼠标移动,按下或释放都会执行该消息
case Win32.WM_NCHITTEST:
WM_NCHITTEST(ref m);
break;
default:
base.WndProc(ref m);
break;
}
}
catch { }
}
#endregion