目的:

1、将窗体设置成无边框,如下面效果图

2、该无边框窗体添加了窗体放大、缩小(可以根据需要只能横向放大缩小  或者  竖向放大缩小)的功能

  

  1. Point vPoint = new Point((int)m.LParam & 0xFFFF, (int)m.LParam >> 16 & 0xFFFF);
  2. vPoint = PointToClient(vPoint);
  3. if (vPoint.X <= 5)
  4. {
  5.   if (vPoint.Y <= 5)
  6.   {
  7.     m.Result = (IntPtr)GuyingHtTopLeft;
  8.   }
  9.   else
  10.   {
  11.     m.Result = vPoint.Y >= ClientSize.Height - 5 ? (IntPtr)GuyingHtBottomLeft : (IntPtr)GuyingHtLeft;
  12.   }
    }
    else if (vPoint.X >= ClientSize.Width - 5)
  13. {
  14.   if (vPoint.Y <= 5)
  15.   {
  16.     m.Result = (IntPtr)GuyingHtTopRight;
  17.   }
  18.   else
  19.   {
  20.     m.Result = vPoint.Y >= ClientSize.Height - 5 ? (IntPtr)GuyingHtBottomRight : (IntPtr)GuyingHtRight;
  21.   }
  22. }
  23. else if (vPoint.Y <= 5)
    {
  24.   m.Result = (IntPtr)GuyingHtTop;
  25. }
  26. else if (vPoint.Y >= ClientSize.Height - 5)
  27. {
  28.   m.Result = (IntPtr)GuyingHtBottom;
  29. }

  

3、添加鼠标左键点击

  1. case 0x0201: //鼠标左键按下的消息
  2. if ( /*this.*/Draggable)
  3. {
  4. m.Msg = 0x00A1; //更改消息为非客户区按下鼠标
  5. m.LParam = IntPtr.Zero; //默认值
  6. m.WParam = new IntPtr(2); //鼠标放在标题栏内
  7. }
  8. base.WndProc(ref m);
  9. break;

  

效果图

源码下载地址:

https://download.csdn.net/download/u011392711/11109822

Winform自定义无边框窗体的更多相关文章

  1. winform(无边框窗体与timer)

    一.无边框窗体 1.控制按钮如何制作就是放置可以点击的控件,不局限于使用按钮或是什么别的,只要放置的控件可以点击能触发点击事件就可以了 做的好看一点,就是鼠标移入(pictureBox1_MouseE ...

  2. C# 自定义无边框窗体阴影效果

    工作中我们会经常遇到自定义一些窗口的样式,设置无边框然后自定义关闭.最大化等其他菜单,但是这样就失去了Winform自带的边框阴影效果,下面这个方法能让无边框增加阴影效果.代码如下: using Sy ...

  3. winform拖动无边框窗体

    这个无边框拖动船体,代码很少,却总是记不住,于是就在网上搜了这段代码,记录一下,省的再忘 using System; using System.Collections.Generic; using S ...

  4. C# WinForm 拖动无边框窗体 改变无边框窗体尺寸

    经常遇到这种情况.窗体的边框去掉了.然后种种问题就出来了:不能拖动.不能改变窗体大小.不能......当然.肯定有解决方案滴*^_^*今天的目标就是:可以直接拖动没有边框的窗体.可以直接拉拽窗体改变其 ...

  5. winform 拖动无边框窗体(调用Windows API)

    第一步:将窗体的FormBoderStyle属性设置为None: 第二步:添加一个新类:Win32.cs 代码如下: public class Win32 { [DllImport("use ...

  6. Winform 实现无边框窗体移动功能

    #region 窗体移动 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImp ...

  7. C#winform拖动无边框窗体

    private bool isMouseLeftKeyDown = false; private Point mousePointToClient = new Point();//相对于本窗体鼠标位置 ...

  8. 【转】【WPF】 WPF 调用API修改窗体风格实现真正的无边框窗体

    WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm中无边框窗体的样式.但是AllowTransparency ...

  9. WPF 调用API修改窗体风格实现真正的无边框窗体

    原文:WPF 调用API修改窗体风格实现真正的无边框窗体 WPF中设置无边框窗体似乎是要将WindowStyle设置为None,AllowTransparency=true,这样才能达到WinForm ...

随机推荐

  1. ExecutorCompletionService分析及使用

    当我们通过Executor提交一组并发执行的任务,并且希望在每一个任务完成后能立即得到结果,有两种方式可以采取: 方式一: 通过一个list来保存一组future,然后在循环中轮训这组future,直 ...

  2. SpringMVC中利用@CrossOrigin注解解决ajax跨域请求的问题

    1. 什么是跨域 跨域,即跨站HTTP请求(Cross-site HTTP request),指发起请求的资源所在域不同于请求指向资源所在域的HTTP请求. 2. 跨域的应用情景 当使用前后端分离,后 ...

  3. JS中清空字符串前后空格

    在JS 操作的时候 长期会有对字符串的操作, 但是在JS 中不像在C#中 有字符串的方法 Trim() 来对字符串进行处理 .  所以自己写一个对字符串前后清楚空格的方法还是有必要的 以免以后忘记了 ...

  4. NRPE介绍

    一.简介 1.NRPE介绍 NRPE是Nagios的一个功能扩展,它可在远程Linux/Unix主机上执行插件程序.通过在远程服务器上安装NRPE插件及Nagios插件程序来向Nagios监控平台提供 ...

  5. Spring的两种任务调度Scheduled和Async

    Spring提供了两种后台任务的方法,分别是: 调度任务,@Schedule 异步任务,@Async 当然,使用这两个是有条件的,需要在spring应用的上下文中声明<task:annotati ...

  6. 2101: Bake Off

    Description Davy decided to start a weekend market stall where he sells his famous cakes. For the fi ...

  7. 如何解决python升级后yum报错

    当我们yum命令的时候,会提示 "File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxEr ...

  8. Python logger 没打出行数

    # !/user/bin/python # -*- coding: utf-8 -*- ''' subprocess : 需要在linux平台上测试 shell logging ''' import ...

  9. 对象和XML文件的转换

    很多时候,我们开发程序都需要使用到对象的XML序列化和反序列化,对象的XML序列化和反序列化,既可以使用XML对象(XmlDocument)进行操作,也可以使用XmlSerializer进行操作,两个 ...

  10. logger.go

    package app //日志接口 type Logger interface {     Output(maxdepth int, s string) error }