社区
Delphi
帖子详情
当FORM1窗体最小化时
bottom
2003-01-04 09:54:14
有两个窗体FORM1,FORM2,我在FORM1。ONSHOW中写到
Form2 := TForm2.Create(Self);FORM2。SHOW;
而当FORM1窗体最小化时
这个FORM2的窗体受FORM1影响,也被最小化,
请问怎么做才可以让FORM2不被最下化
...全文
48
2
打赏
收藏
当FORM1窗体最小化时
有两个窗体FORM1,FORM2,我在FORM1。ONSHOW中写到 Form2 := TForm2.Create(Self);FORM2。SHOW; 而当FORM1窗体最小化时 这个FORM2的窗体受FORM1影响,也被最小化, 请问怎么做才可以让FORM2不被最下化
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
张灰太狼
2003-01-04
打赏
举报
回复
robbot老兄好像也是有影响的
robbot
2003-01-04
打赏
举报
回复
Form2 := TForm2.Create(Self);
//self指的是FROM1,
//Form2.parent:=Form1;
Form2 := TForm2.Create(Form2的父句柄);
Form2 := TForm2.Create(Application);
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); }
vb禁用
窗体
最大化、
最小化
和关闭快捷菜单.rar
vb禁用
窗体
最大化、
最小化
和关闭快捷菜单,禁用最大化、
最小化
不可用,重点实现了禁止关闭窗口的功能,禁止后窗口上的关闭按钮变成灰色不可点击了,在实现方面,核心代码如下: Private Sub
Form
_Load() RemoveMenu GetSystemMenu(Me.hWnd, 0), SC_COLSE, MF_REMOVE//禁止关闭 RemoveMenu GetSystemMenu(Me.hWnd, 0), SC_MAXIMIZE, MF_REMOVE//禁止最大化 RemoveMenu GetSystemMenu(Me.hWnd, 0), SC_MINIMIZE, MF_REMOVE//禁止
最小化
End Sub
C# 实战项目——制作仿QQ软件
通过本课程学习,你将学到以下知识点: 1、
Form
窗体
关键属性、方法和事件的应用 2、如何触发
窗体
和控件的事件 3、ListView控件和ImageList组件的结合使用 4、数据库及数据表的创建 5、使用C#操作SQL&...
C#
窗体
最大化
最小化
关闭按钮灰色 失效改变功能
1.使
窗体
最大化,
最小化
或关闭按钮变为灰色; 2.改变
窗体
关闭按钮的功能 3.使关闭按钮失去作用 互动学习。。。。。
VB
form
移动
窗体
VB中 用cmd按钮 控制
窗体
的左右上下移动 以及最大
最小化
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章