`

C# 改变无边框窗体尺寸大小的方法

阅读更多
C# 改变无边框窗体尺寸大小的方法。
代码:
const int HTLEFT = 10;
const int HTRIGHT = 11;
const int HTTOP = 12;
const int HTTOPLEFT = 13;
const int HTTOPRIGHT = 14;
const int HTBOTTOM = 15;
const int HTBOTTOMLEFT = 0x10;
const int HTBOTTOMRIGHT = 17;
protected override void WndProc(ref Message m)
{
    switch (m.Msg)
    {
        case 0x0084:
            base.WndProc(ref m);
            Point vPoint = new Point((int)m.LParam & 0xFFFF,
                (int)m.LParam >> 16 & 0xFFFF);
            vPoint = PointToClient(vPoint);
            if (vPoint.X <= 5)
                if (vPoint.Y <= 5)
                    m.Result = (IntPtr)HTTOPLEFT;
                else if (vPoint.Y >= ClientSize.Height - 5)
                    m.Result = (IntPtr)HTBOTTOMLEFT;
                else m.Result = (IntPtr)HTLEFT;
            else if (vPoint.X >= ClientSize.Width - 5)
                if (vPoint.Y <= 5)
                    m.Result = (IntPtr)HTTOPRIGHT;
                else if (vPoint.Y >= ClientSize.Height - 5)
                    m.Result = (IntPtr)HTBOTTOMRIGHT;
                else m.Result = (IntPtr)HTRIGHT;
            else if (vPoint.Y <= 5)
                m.Result = (IntPtr)HTTOP;
            else if (vPoint.Y >= ClientSize.Height - 5)
                m.Result = (IntPtr)HTBOTTOM;
            break; www.jbxue.com
        case 0x0201://鼠标左键按下的消息 
            m.Msg = 0x00A1;//更改消息为非客户区按下鼠标 
            m.LParam = IntPtr.Zero;//默认值 
            m.WParam = new IntPtr(2);//鼠标放在标题栏内 
            base.WndProc(ref m);
            break; 
        default:
            base.WndProc(ref m);
            break;
    }
}
分享到:
评论

相关推荐

    C#的无边框窗体改变大小解决方案

    总结一下,实现C#无边框窗体改变大小的关键在于禁用默认边框,然后通过处理鼠标输入事件来模拟窗体的拖动和缩放。在实际开发中,还可以根据需求进一步优化,比如添加鼠标形状变化、边界检测以及尺寸限制等功能,以...

    c# WinForm无边框拖拽及窗体放大缩小

    在无边框窗体上实现拖动功能,通常需要重写窗体的`MouseDown`和`MouseMove`事件。当鼠标按钮按下时,在`MouseDown`事件中记录鼠标当前位置(相对窗体的位置),然后在`MouseMove`事件中根据鼠标的移动来更新窗体的...

    Winform改变无边框窗体的大小

    该实例为Winform程序,为无边框窗体,代码实现鼠标拖拽窗体,改变大小,最大化,最小化,还原,双击放大和还原。代码简单粗暴易懂。 另外:http://download.csdn.net/detail/mask_ll/3709169这个资源是之前做的,...

    无边框窗体Winform四周阴影效果C#实现

    可以考虑只在必要的时候(如窗体大小改变或位置移动)才重新绘制阴影。 8. **兼容性和跨平台** - 考虑到不同的操作系统和硬件配置,阴影效果可能在某些环境下表现不佳。确保代码具有良好的兼容性,并在必要时提供...

    winform无边框窗口可改变大小

    // 根据鼠标位置和之前记录的尺寸调整窗体大小 } } ``` 这里需要实现的`ResizeBorderType`枚举表示用户在哪个边界进行操作,例如顶部、底部、左侧、右侧等。 4. **最大化和最小化** 对于最大化和最小化功能,...

    winform 无边框窗体设置四边阴影

    - 当窗体大小改变时,阴影也需要相应地调整。为此,我们需要重写`OnResizeEnd`或`OnSizeChanged`事件,重新计算阴影的尺寸并调用`Invalidate`方法强制重绘窗体。 4. **性能优化**: - 为了提高性能,可以考虑使用...

    基于C#的无边框窗体阴影绘制方案

    在C#编程中,开发人员有时需要创建具有特殊视觉效果的窗体,比如无边框窗体并带有阴影效果。这种效果通常用于实现更现代、更精致的用户界面。本篇将详细介绍如何在C#中实现一个无边框窗体,并为其添加阴影效果。 ...

    winform无边框在panel上拖动窗口位置,改变窗口大小

    - 当窗体大小调整到最小化或最大化限制时,需要处理这些情况,防止窗体变得不可见或过大。 - 对于窗口的边缘调整,可能需要覆盖窗体的`WndProc`方法,处理`WM_NCHITTEST`消息以确定鼠标是否在可调整大小的区域。 ...

    C#中窗体Form的美化窗体圆角的处理

    2. **无边框窗体大小的改变与移动**: - 当窗体的FormBorderStyle属性设置为None时,窗体无法被用户直接调整大小或移动。要实现这些功能,我们需要重写WndProc方法,处理`WM_NCHITTEST`消息。此消息决定了鼠标点击...

    Winform无边框移动,修改窗体大小,并且等比缩放

    窗体没有边框,但是没有边框,窗体就不能移动,并且不能修改大小,经过修改,窗体可以移动,并且能移动大小,但是发现窗体拉到以后分辨率会降低,经过努力,终于把无边框窗体改成可以拖动,改变大小并且可以等比缩放...

    无边框窗体(c#).rar

    总结,创建无边框窗体(C#)涉及到多个方面,包括改变窗体边框样式、自定义拖动和大小调整行为、构建自定义标题栏和控制按钮、添加键盘快捷键支持以及实现全屏模式。通过以上步骤,你可以根据具体需求定制出具有独特...

    winfrom无边框窗体源码.rar

    对焦拉伸是指用户可以自由调整无边框窗体的大小。实现这一功能也需要自定义代码,因为默认的边框不再提供缩放功能。我们可以在窗体的边缘添加鼠标事件监听器,当用户按下鼠标并移动时,根据鼠标位置判断是否在窗体的...

    移动无边框窗体.rar

    在Windows API(应用程序接口)或.NET Framework(如C#、VB.NET等语言)中,创建移动无边框窗体涉及以下几个关键知识点: 1. **窗体样式设置**:首先,需要在窗体的初始化阶段改变其默认样式。在.NET Framework中,...

    C#设置窗体尺寸程序

    对于窗体的大小改变事件,C#提供了一个 `Resize` 事件,可以用来在窗体尺寸改变时执行特定操作,例如更新控件的位置或大小。 ```csharp this.Resize += new System.EventHandler(this.Form_Resize); ``` 在 `Form_...

    c#手动改变自制窗体的大小源码.rar

    5. 自定义窗体大小的实现:在C#中,可以通过以下方式手动改变窗体大小: - 直接修改Size属性:`this.Size = new Size(newWidth, newHeight);` - 使用SizeMode属性:`this.SizeMode = FormBorderStyle.None;` 可以...

    C#WinForm窗体四周阴影效果

    - 当主窗体的位置或大小改变时,需要同步更新阴影窗体的位置和大小。这可以通过监听`MainForm`的`LocationChanged`和`SizeChanged`事件来实现。 - 在事件处理程序中,根据主窗体的位置和大小计算出阴影窗体的位置...

    C# winform窗体四边阴影化使无边框样子框体更好看.rar

    在C#编程中,创建美观的应用程序界面是提升用户体验的关键因素之一。`C# Winform`窗体的四边阴影效果能为用户带来更现代...这个资源为开发者提供了一个简便的途径,使得无边框窗体更具吸引力,从而提升应用的整体体验。

Global site tag (gtag.js) - Google Analytics