社区
Delphi
帖子详情
急,如何向Form 发窗体最大化和最小化的消息!!!!!
eastxiang
2006-01-04 10:13:54
急,如何向Form 发窗体最大化和最小化的消息!!!!!
...全文
175
7
打赏
收藏
急,如何向Form 发窗体最大化和最小化的消息!!!!!
急,如何向Form 发窗体最大化和最小化的消息!!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xzhifei
2006-01-04
打赏
举报
回复
ShowWindow(Self.Handle,SW_SHOWMINIMIZED );
ShowWindow(Self.Handle,SW_SHOWMAXIMIZED );
ourlin
2006-01-04
打赏
举报
回复
mark
conis
2006-01-04
打赏
举报
回复
SendMessage(Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0); 最大化
SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0); 最小化
SendMessage(Handle, WM_SYSCOMMAND, SC_ICON, 0); 到通知栏,其实和SC_MAXIMIZE一上
SendMessage(Handle, WM_SYSCOMMAND, SC_RESTORE, 0); 还原
deepbluesea
2006-01-04
打赏
举报
回复
SendMessage(Handle, WM_SYSCOMMAND, SC_MAXIMIZE, 0);
SendMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Randomize
2006-01-04
打赏
举报
回复
SendMessage(Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
SendMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
Randomize
2006-01-04
打赏
举报
回复
oh my god!都來分一杯羹?
leonkim
2006-01-04
打赏
举报
回复
SendMessage(SomeForm.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
SendMessage(SomeForm.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
hehe
PostMessage(SomeForm.Handle,WM_SYSCOMMAND,SC_MAXIMIZE,0);
PostMessage(SomeForm.Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
hehe
C# 自定义
窗体
的
最大化
、
最小化
和关闭按钮
自定义
窗体
的
最大化
、
最小化
和关闭按钮, C#移动无标题栏
窗体
的三种代码: C#移动无标题栏
窗体
的三种代码:第一种采用,需注意
窗体
上的控件是否把
窗体
覆盖了。。。MouseDown、MouseMove、MouseUp事件应该是鼠标所处位置最顶层的控件的事件 在
窗体
的类中声明两个变量 private Point mouseOffset; //记录鼠标指针的坐标 private bool isMouseDown = false; //记录鼠标按键是否按下 创建该
窗体
MouseDown、MouseMove、MouseUp事件的相应处理程序 private void
Form
1_MouseDown(object sender, System.Windows.
Form
s.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
Form
1_MouseMove(object sender, System.Windows.
Form
s.MouseEventArgs e) { if (isMouseDown) { Point mousePos = Control.MousePosition; mousePos.Offset(mouseOffset.X, mouseOffset.Y); Location = mousePos; } } private void
Form
1_MouseUp(object sender, System.Windows.
Form
s.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
Form
1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0); } 第三种未验证 private bool isMouseDown = false; private Point
Form
Location; //
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
Form
1_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
Form
1_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); }
C#
窗体
最大化
最小化
关闭按钮灰色 失效改变功能
1.使
窗体
最大化
,
最小化
或关闭按钮变为灰色; 2.改变
窗体
关闭按钮的功能 3.使关闭按钮失去作用 互动学习。。。。。
C# 实战项目——制作仿QQ软件
QQ 大家都用过,在现在这个互联网时代,越来越多的人使用 QQ 进行沟通交流,本章将使用 ... 8、自定义
最小化
和关闭按钮 同时将提供完整的项目开
发
流程,手把手的带你做完一个完整的项目。
VB
form
移动
窗体
VB中 用cmd按钮 控制
窗体
的左右上下移动 以及最大
最小化
C# Win
Form
窗体
中控件的大小自适应
下载后解压缩即可运行使用,代码中有详细的备注。 使用方法见博客:https://blog.csdn.net/chbxgbin/article/details/109690260 1.把自适应的类整体复制到你的工程命名空间里,这样做,每个
窗体
均可使用。 2.声明自适应类实例。 3.为
窗体
添加SizeChanged事件,并在其方法
Form
1_SizeChanged中,首次记录
窗体
和其控件初始位置和大小,之后调用类的自适应方法,完成自适应。 4.Panel,DataGridView等控件同样适用。
Delphi
5,386
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章