当前位置:  编程技术>.net/c#/asp.net

c# 重载WndProc,实现重写“最小化”的实现方法

    来源: 互联网  发布时间:2014-10-13

    本文导语:  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; //显示系统托盘图标...

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);
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++操作符(Operator)用法(new和重载)
  • 请问重载和覆盖的区别是什么?
  • 那请问过载和重载的区别是什么?
  • c++重载的详细总结
  • C++中不能被重载的运算符介绍
  • 请问有关过载和重载的问题?
  • 关于重载的问题,超急,在线等!!!!
  • String的+是不是像c++一样重载运算符?
  • 一个scjp的题------关于重载
  • 问一个很蠢的问题:什么是重载,继承,实例,派生,接口
  • LINUX的共享库(.so库)中可以重载函数吗?
  • 在什么情况下重载paint()或paintComponent(),我不知道怎么办?
  • C++概念重载、覆盖、隐藏的使用说明
  • 请问方法中参数个数相同但参数类型不同,该算是overload(重载)吗?
  • 这句话对不对 用final修饰的方法是不能被该类的子类所重载的方法 ?
  • 方法重载有什么好处?
  • 关于“创建重载现存方法的方法”
  • c++ *运算符重载
  • ASP.NET方法如何重载需要必备哪些条件
  • 有关重载与过载之间关系的问题
  • 重载、超载是怎么回事?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3