//网上很多人应该在找这段代码,结合几位网友程序片段原创
private Size beforeResizeSize = Size.Empty;
private Size endResizeSize = Size.Empty;
protected override void OnResizeBegin(EventArgs e)
{
base.OnResizeBegin(e);
beforeResizeSize = this.Size;
}
protected override void OnResizeEnd(EventArgs e)
{
base.OnResizeEnd(e);
//窗口resize之后的大小
Size endResizeSize = this.Size;
UpdateControlSizes(beforeResizeSize, endResizeSize);
}
const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
const int SC_NOMAL = 0xF120;
const int SC_MAXIMIZE2 = 0xF032;
const int SC_NOMAL2 = 0xF122;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE) //是否点击最小化
{
//.....................
}
if (m.WParam.ToInt32() == SC_MAXIMIZE || m.WParam.ToInt32() ==
SC_MAXIMIZE2) //是否点击最大化
{
isJustClickedMaximizebox = true;
beforeResizeSize = this.Size;
}