一、捕获最大化、最小化事件
(处理发生在最大化、最小化按钮事件之后)可以判断用户是否点击了最大化、最小化按钮,并根据点击按钮的不同做相应处理。
protected override void OnResize(EventArgs e)
{
if(WindowState == FormWindowState.Maximized)
{
//最大化时所需的操作
MessageBox.Show("max");
}
else if(WindowState == FormWindowState.Minimized)
{
//最小化时所需的操作
MessageBox.Show("min");
}
}
二、重写最大化、最小化事件
重写可实现对最大化、最小化按钮事件的拦截,使程序按自己的方式运行。
private int WM_SYSCOMMAND = 0x112;
private long SC_MAXIMIZE = 0xF030;
private long SC_MINIMIZE = 0xF020;
private long SC_CLOSE = 0xF060;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt64() == SC_MAXIMIZE)
{
//MessageBox.Show("MAXIMIZE ");
return;
}
if (m.WParam.ToInt64() == SC_MINIMIZE)
{
//MessageBox.Show("MINIMIZE ");
return;
}
if (m.WParam.ToInt64() == SC_CLOSE)