社区
C#
帖子详情
请教如何实现点击系统状态栏的窗体小图标让窗体最小化?
ym2006
2004-09-13 04:47:52
请教如何实现点击系统状态栏的窗体小图标让窗体最小化?最小化以后点击变normal。
...全文
115
7
打赏
收藏
请教如何实现点击系统状态栏的窗体小图标让窗体最小化?
请教如何实现点击系统状态栏的窗体小图标让窗体最小化?最小化以后点击变normal。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
北京的雾霾天
2004-10-22
打赏
举报
回复
上帖不小心最后多写了一个}去掉就OK,
:)
北京的雾霾天
2004-10-22
打赏
举报
回复
比如你的notifyIcon有一个在窗体的实例叫notifyIcon1,则可以如下添加它的click事件来处理.
private void notifyIcon1_Click(object sender, System.EventArgs e)
{
if (this.WindowState == FormWindowState.Minimized)
{
this.WindowState = FormWindowState.Normal;
}
else
{
this.WindowState = FormWindowState.Minimized;
}
}
}
罗卜基斯
2004-10-22
打赏
举报
回复
话不是这样说的啊,
正如饭不是这样吃的哦
ffb
2004-10-22
打赏
举报
回复
回答问题的都是骗分的,MD
triout
2004-09-14
打赏
举报
回复
在你需要的时候。
如果你要让窗体最小化,则执行第一行语句,如果要恢复原状(正常情况)则使用第二条,如果要最大化则使用下面的:
this.WindowState = FormWindowState.Maximized;
ym2006
2004-09-14
打赏
举报
回复
在什么地方写这两句话
jiezhi
2004-09-13
打赏
举报
回复
this.WindowState = FormWindowState.Minimized;
this.WindowState = FormWindowState.Normal;
VB.NET
实现
窗体
图标
最小化
到
状态栏
本文所使用的编程环境是Microsoft Visual Studio 2005,首先打开Visual Studio。在文件(File)菜单上,单击新建项目(New Project)。在新建项目(New Project)对话框的模板(Templates)窗格中,单击Windows应用程序(WindowsApplication)。单击确定(ok)。
C# 自定义
窗体
的最大化、
最小化
和关闭按钮
自定义
窗体
的最大化、
最小化
和关闭按钮, C#移动无标题栏
窗体
的三种代码: C#移动无标题栏
窗体
的三种代码:第一种采用,需注意
窗体
上的控件是否把
窗体
覆盖了。。。MouseDown、MouseMove、MouseUp事件应该是鼠标所处位置最顶层的控件的事件 在
窗体
的类中声明两个变量 private Point mouseOffset; //记录鼠标指针的坐标 private bool isMouseDown = false; //记录鼠标按键是否按下 创建该
窗体
MouseDown、MouseMove、MouseUp事件的相应处理程序 private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { int xOffset; int yOffset; if (e.Button == MouseButtons.Left) { xOffset = -e.X ; yOffset = -e.Y ; mouseOffset = new Point(xOffset, yOffset); isMouseDown = true; } } private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (isMouseDown) { Point mousePos = Control.MousePosition; mousePos.Offset(mouseOffset.X, mouseOffset.Y); Location = mousePos; } } private void Form1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) { // 修改鼠标状态isMouseDown的值 // 确保只有鼠标左键按下并移动时,才移动
窗体
if (e.Button == MouseButtons.Left) { isMouseDown = false; } } 第二种调用API 未验证 using System.Runtime.InteropServices; [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); public const int WM_SYSCOMMAND = 0x0112; public const int SC_MOVE = 0xF010; public const int HTCAPTION = 0x0002; private void Form1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } 第三种未验证 private bool isMouseDown = false; private Point FormLocation; //form的location private Point mouseOffset; //鼠标的按下位置 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user32.dll")] public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam); private const int WM_SYSCOMMAND = 0x0112;//
点击
窗口左上角那个图标时的
系统
信息 private const int SC_MOVE = 0xF010;//移动信息 private const int HTCAPTION = 0x0002;//表示鼠标在窗口标题栏时的
系统
信息 private const int WM_NCHITTEST = 0x84;//鼠标在
窗体
客户区(除了标题栏和边框以外的部分)时发送的消息 private const int HTCLIENT = 0x1;//表示鼠标在窗口客户区的
系统
消息 private const int SC_MAXIMIZE = 0xF030;//最大化信息 private const int SC_MINIMIZE = 0xF020;//
最小化
信息 protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_SYSCOMMAND: if (m.WParam == (IntPtr)SC_MAXIMIZE) { m.WParam = (IntPtr)SC_MINIMIZE; } break; case WM_NCHITTEST: //如果鼠标移动或单击 base.WndProc(ref m);//调用基类的窗口过程——WndProc方法处理这个消息 if (m.Result == (IntPtr)HTCLIENT)//如果返回的是HTCLIENT { m.Result = (IntPtr)HTCAPTION;//把它改为HTCAPTION return;//直接返回退出方法 } break; } base.WndProc(ref m);//如果不是鼠标移动或单击消息就调用基类的窗口过程进行处理 } private void Form1_Load(object sender, EventArgs e) { } ------------------------------- 如何在
窗体
标题栏左边的控制菜单加入自己的菜单啊? 我们一般在窗口标题栏点右键 或 按Alt+空格 可以弹出那个菜单。 ------解决方案-------------------- using System.Runtime.InteropServices; [DllImport( "user32.dll ")] public static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); [DllImport( "user32.dll ")] public static extern bool InsertMenu(IntPtr hMenu, uint uPosition, uint uFlags, uint uIDNewItem, string lpNewItem); public const int MF_BYCOMMAND = 0; public const int MF_STRING = 0; public const int MF_BYPOSITION = 0x400; public const int MF_SEPARATOR = 0x800; private const uint SC_ABOUT = 0x0001; public const int WM_SYSCOMMAND = 0x0112; private void Form1_Load(object sender, EventArgs e) { IntPtr vMenuHandle = GetSystemMenu(Handle, false); InsertMenu(vMenuHandle, 255, MF_STRING, SC_ABOUT, "About... "); } protected override void WndProc(ref Message m) { switch (m.Msg) { case WM_SYSCOMMAND: if ((uint)m.WParam == SC_ABOUT) { MessageBox.Show( "Zswang 路过! "); } break; } base.WndProc(ref m); }
Python Tkinter
窗体
讲解
Python作为自立门户的语言,除了学习它的基础编程之外,它还提供了
窗体
的学习,这样相对来说,它就完整了,如果大家学习过C#
窗体
实现
或者Java,MFC等等吧,再学习它就会简单的多。当然大家也不用担心,即使没学过,...
Delphi开发技巧之-Forms
TMenuItem显示在右侧 不使用MDI制作子
窗体
不使用标题栏移动
窗体
不使用标题栏移动窗口 两行hint 从XML文件动态创建菜单 从另外MDI子窗口读数据 使控件具有阴影效果 使每个MDIChild填充整个主窗口区域 使用Enter键替代Tab键 使用动画效果关闭窗口 使用动画方式打开
窗体
使用帮助文件 使用
状态栏
显示hint 使用
系统
图标 使
窗体
不能移动 关闭一个MDI子
窗体
创建一个能改变大小的无边界
窗体
创建半透明
窗体
创建圆角
窗体
创建透明
窗体
判断
窗体
是modal 制作动画应用程序图标 制作可移动不能改变大小的
窗体
制作永远
最小化
窗口 制作透明窗口 取和设置鼠标位置 取鼠标指针下面的活动TWinControl 启动时隐藏主窗口 在 window xp 使用阴影效果 在TCombobox内显示多行文本 在TScrollBox上显示
窗体
在你的程序中使用 Win XP 可视风格 在
窗体
上制造多边形洞 在
窗体
上挖洞 在
窗体
周围画彩色轮廓 定位messagebox
实现
窗口的
最小化
动画效果 将InputQuery定位在
窗体
居中位置 怪异
窗体
手动改变
窗体
比例 抓屏 拖拽时显示窗口内容 捕获主
窗体
WM_MOVE消息 改变Hint字体 改变Hint的显示时间 改变MessageDlg的按钮标题
最小化
控件
最小化
第二个窗口到任务栏 查找
窗体
注册类 格式化MessageDlg 检查PopUp菜单是否打开 检查控件是否被其它窗口遮掩 添加菜单项到
系统
菜单 渐变色填充
窗体
特效窗口 移动指针到当前具有焦点的控件 移除
系统
菜单项 自动关闭TCommonDialog 运行时改变MainForm 运行时移动控件 运行时移动窗口控件 选中或取消其它窗口的复选框 通过在标题栏上右击缩小窗口 防止 Windows
最小化
窗体
防止控件重画 防止
窗体
改变大小和移动 隐藏标题栏 隐藏
窗体
的最大化和
最小化
按钮
visual c++ 程序开发范例宝典 随书CD 源码
窗体
与界面设计
本资源是visual c++ 程序开发范例宝典的随书CD源码,由于本人的上传文件大小受限,所以只能一部分一部分的上传。这一部分主要是
窗体
与界面设计部分。上传的资源里面共有42个例程,考虑到文件大小问题,本人把例程里面的debug和release目录都清空了,如果要看实际效果需要重新运行一下才可以。这些例程主要是:1、菜单应用实例,包括:在
系统
菜单中添加菜单项、带图标的程序菜单、根据表中数据动态生成菜单、浮动菜单、在控件上单击右键弹出菜单、个性化的弹出菜单、任务栏托盘弹出菜单。 2、工具栏应用实例,包括:带背景的工具栏、带图标的工具栏、带下拉菜单的工具栏、可调整按钮位置的工具栏、浮动工具栏、根据表中数据动态生成工具栏、具有提示功能的工具栏。3、
状态栏
应用实例,包括:带进度条的
状态栏
、动画效果的
状态栏
、滚动字幕的
状态栏
。4、导航界面应用实例,包括:Outlook导航界面、树状导航界面、按钮导航界面、类QQ导航菜单。5、界面
窗体
应用实例,包括:背景为渐变色的程序界面、椭圆形的程序界面、自绘
窗体
界面、类似windows XP的程序界面、
窗体
融合技术、限制对话框最大时窗口大小。6、多媒体宣传光盘应用实例,包括:多媒体宣传光盘主界面、自动运行的多媒体宣传光盘。7、多媒体触摸屏程序应用实例,包括:采购中心多媒体触摸屏程序、为触摸屏程序添加虚拟键盘。8、
窗体
位置应用实例,包括:不可移动的
窗体
、始终在最上面的
窗体
、动画显示
窗体
、以时钟显示界面
窗体
。9、
窗体
标题栏应用实例,包括:闪烁的
窗体
标题栏、拖动没有标题栏的
窗体
、禁用标题栏上的最大化、
最小化
或关闭按钮。10、
窗体
形状及应用,包括:半透明
窗体
、创建字型
窗体
、百叶窗
窗体
、类似office助手。上面列举的各个实例标题正好对应实例的先后次序。
C#
110,500
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章