博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c# 中重载WndProc,实现重写“最小化”自定义功能的方法
阅读量:4303 次
发布时间:2019-05-27

本文共 1138 字,大约阅读时间需要 3 分钟。

code #1

复制代码 代码如下:

private void Form1_SizeChanged(object sender, EventArgs e) //最小化隐藏窗体
{
if (this.WindowState == FormWindowState.Minimized)//窗体状态为最小化
{
StopRectTimer.Enabled = false;
this.Visible = false;
this.notifyIcon1.Visible = true; //显示系统托盘图标
this.notifyIcon1.Text = this.Text; //设置图标显示的文本
this.ShowInTaskbar = false; //窗体在任务标中隐藏
reghotkey();
打开OToolStripMenuItem.Text = "打开(&O)";
}
}

很显然,如果打开歌词状态话的话,怎样才能最小化而不改变窗体的大小呢?我想到了重载“最小化”,但是怎么重载呢?这里给出一种重载WndProc的方案:

复制代码 代码如下:

const int WM_SYSCOMMAND = 0x112;
const int SC_CLOSE = 0xF060;
const int SC_MINIMIZE = 0xF020;
const int SC_MAXIMIZE = 0xF030;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_SYSCOMMAND)
{
if (m.WParam.ToInt32() == SC_MINIMIZE)
{
this.Visible = false;
return;
}
}
base.WndProc(ref m);

}

//******************备注

 protected override void WndProc(ref Message m)//子类的消息循环

        {
            if (m.Msg == WM_SYSCOMMAND)
            {
                if (m.WParam.ToInt32() == SC_CLOSE)//不影响关闭操作,因为后面还调用了基类的消息循环(  base.WndProc(ref m);//基类的消息循环)
                {
                    ............................
                    //return;//返回的话就不调用基类的消息循环了,这样就不能执行基类的基本消息对应的行为了
                }
            }
            //根据继承关系,子类重写的函数调用完后,可以手动再调用基类的被重写的函数;
            base.WndProc(ref m);//基类的消息循环

        }

转载地址:http://dclws.baihongyu.com/

你可能感兴趣的文章
java中的IO操作总结(二)
查看>>
java中的IO操作总结(三)
查看>>
java中的IO操作总结(四)
查看>>
Java 内部类种类及使用解析
查看>>
匿名内部类精讲
查看>>
如何在ubuntu下设置永久的alias别名
查看>>
如何安装安装nginx软件--nginx的自动安装
查看>>
ubuntu下编译php扩展的时候报缺少pcre解决办法
查看>>
linux下安装安装pcre configure: error: You need a C++ compiler for C++ support
查看>>
ubuntu下nginx的安装教程(过程可能有点不同)
查看>>
nginx+php(fastcgi)安装教程
查看>>
linux命令(1):wget命令
查看>>
linux命令(2):gzip命令
查看>>
Linux命令(3)打Patch的方法
查看>>
linux命令(4)curl命令详解
查看>>
Apache与Nginx的优缺点比较
查看>>
Ubuntu中安装zlib
查看>>
configure: error: C++ compiler cannot create executables
查看>>
linux命令(5)Ubuntu apt-get安装卸载命令
查看>>
如何安装nginx软件---手动安装
查看>>