简单的圆角无边框窗体

Qt 之 设置窗口边框的圆角 Qt paintEvent setStyleSheet 阅读详情

见优快云网友提出这样的问题(做一个象qq一样的外壳),查了一下资料,发现可以通过API做个简单的效果,至于QQ是怎么实现的,还没研究过.

新建一个窗体Form1,拖一个Button控件进去,保留Button默认名字Button1不变,用以下代码替换Form1.vb中的代码:

Public Class Form1

    Inherits System.Windows.Forms.Form

 

#Region " Windows 窗体设计器生成的代码 "

 

    Public Sub New()

        MyBase.New()

 

        '该调用是 Windows 窗体设计器所必需的。

        InitializeComponent()

 

        '在 InitializeComponent() 调用之后添加任何初始化

 

    End Sub

 

    '窗体重写 dispose 以清理组件列表。

    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

        If disposing Then

            If Not (components Is Nothing) Then

                components.Dispose()

            End If

        End If

        MyBase.Dispose(disposing)

    End Sub

 

    'Windows 窗体设计器所必需的

    Private components As System.ComponentModel.IContainer

 

    '注意: 以下过程是 Windows 窗体设计器所必需的

    '可以使用 Windows 窗体设计器修改此过程。

    '不要使用代码编辑器修改它。

    Friend WithEvents Button1 As System.Windows.Forms.Button

    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

        Me.Button1 = New System.Windows.Forms.Button

        Me.SuspendLayout()

        '

        'Button1

        '

        Me.Button1.Location = New System.Drawing.Point(112, 40)

        Me.Button1.Name = "Button1"

        Me.Button1.TabIndex = 0

        Me.Button1.Text = "Close"

        '

        'Form1

        '

        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)

        Me.ClientSize = New System.Drawing.Size(292, 273)

        Me.Controls.Add(Me.Button1)

        Me.Name = "Form1"

        Me.Text = "Form1"

        Me.ResumeLayout(False)

 

    End Sub

 

#End Region

 

  

 

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '窗体最小尺寸

        Me.MinimumSize = New Size(100, 100)

 

        '窗体最大尺寸

        Me.MaximumSize = New Size(500, 500)

 

        '窗体为无边框类型

        Me.FormBorderStyle = FormBorderStyle.None

 

        SetRoundWnd(Me)

       

    End Sub

 

    Private Sub Form1_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged

        '窗体大小改变时重新设置显示区域

        SetRoundWnd(Me)

    End Sub

 

    '让无边框窗体也能通过拖动边框来改变大小

    Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams

        Get

            Dim cp As CreateParams = MyBase.CreateParams

            cp.Style = cp.Style Or WS_THICKFRAME

            Return cp

        End Get

    End Property

 

    Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseDown

        '点击窗体任意位置进行拖动

        ReleaseCapture()

        SendMessage(Me.Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0)

    End Sub

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        '没有标题栏了, 提供关闭窗体的地方

        Me.Close()

    End Sub

 

End Class

 

增加如下的模块:

Module Module_AntingZ

 

    'API声明

 

    Public Declare Function CreateRoundRectRgn Lib "gdi32" Alias "CreateRoundRectRgn" (ByVal X1 As Integer, ByVal Y1 As Integer, ByVal X2 As Integer, ByVal Y2 As Integer, ByVal X3 As Integer, ByVal Y3 As Integer) As Integer

 

    Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As IntPtr, ByVal hRgn As Integer, ByVal bRedraw As Boolean) As Integer

 

    Public Declare Function ReleaseCapture Lib "user32" Alias "ReleaseCapture" () As Integer

 

    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Object) As Integer

 

    '常量定义

 

    Public Const WM_NCLBUTTONDOWN = &HA1

 

    Public Const HTCAPTION = 2

    Public Const WS_THICKFRAME = &H40000

 

    '设置窗体显示区域(圆型边角)

    Public Sub SetRoundWnd(ByVal frm As Form)

        Dim r As Integer = CreateRoundRectRgn(0, 0, frm.Width, frm.Height, 100, 100)

        SetWindowRgn(frm.Handle, r, True)

    End Sub

 

End Module

 

Window Styles参考MSDN:

ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/vclib/html/_mfc_Window_Styles.htm

无边框圆角窗体,窗体带边框线和阴影 有点类似qq登录界面的窗体样式 可设置无边框窗体圆角属性 可设置窗体边框线和边框线颜色 可拖动 可设置窗体阴影 带作者logo 可设置不显示 详细请查看说明 立即下载

相关推荐

VB6圆角界面 圆角窗体

十分简洁的VB6圆角界面 圆角窗体源代码,便于VB初学者学习使用。

WPF制作无边框窗体、圆角窗体、支持改变大小、拖动分屏等(一)

目录概述需求说明无边框窗体 概述 Windows Presentation Foundation (WPF) 是一个可创建桌面客户端应用程序的 UI 框架。 WPF 开发平台支持广泛的应用开发功能,包括应用模型、资源、控件、图形、布局、数据绑定、文档和安全性。 此框架是 .NET Framework 的一部分,因此,在未来如果想快速的开发桌面软件,WPF腚是你的不二选择。 需求说明 WPF既然是桌面软件UI,那一定绕不开桌面软件的多元化(chan pin jing li de chou pi)显示方式,最常

若汝棋茗 的博客 4819

完整版圆角化窗口.e.rar

完整版圆角化窗口.e.rar

C# 无边框异型窗体制作

我是一个C#的初学者 只要涉及到windows窗体编程 都希望窗体的外观比较好看 不是系统默认的那样 对于C# 更改窗体外观感觉并不那么轻松 更改窗体外观涉及到使用GDI+ 我所知道的有两种方法: 有系统边框的窗体 处理窗体的Paint方法,在paint方法中 参数e.Graphics属性将返回一个对象 用来作画 但是这个画布的区域是窗体的客户区 所以无法修改到窗体的标题栏 边框等位置...

weixin_30641999的博客 384

VB实现圆角窗体

经过实测可以使用,VB圆角窗体,大伙多多下载把

VB.NET让窗体的图片变成圆角

VB.NET让窗体的图片变成圆角

C#:无边框窗体的移动,窗体的形状(圆角矩形)的设置

0. 我们可以很容易的设置一个窗体为无边框,因为可以看起来更简洁,然后加上自己的关闭按钮。但无边框窗体是无法移动的,那么解决办法如下: #region 用于移动无边框窗体 [DllImport("user32.dll")] public static extern bool ReleaseCapture(); [DllImport("user...

八步赶蝉 2078

用FSL的eddy_topup pipeline完整处理DTI数据:从原理到实战,搞定涡流和磁化率畸变

本文详细介绍了如何使用FSL的eddy_topup pipeline完整处理DTI数据,解决涡流和磁化率畸变问题。从原理到实战,涵盖了数据格式转换、脑提取、b0图像处理等关键步骤,并提供了acqparams.txt配置和eddy命令的详细解析,帮助研究人员高效完成DTI数据校正。

weixin_29235525的博客 283

VB.NET WinForm圆角矩形窗体

VB.NET winform实现圆角矩形的窗体样式

Pwwwqq的博客 674

ArcGIS中利用DEM数据生成地形图既视感的等高线;利用掩膜进行等高线注记;DEM的可视化表达总结

文章目录前言一、效果图展示二、地形(DEM)可视化表达1.一维可视化2.二维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化2.三维可视化二、ArcGIS中利用DEM数据制作等高线2.三维可视化2.三维可视化2.三维可视化总结 前言 最近老师布置作业:DEM的可视化表达。想做一个等高线地形图那样、看起来高级一点的等高线,可是我看网上大多数教程都只展示了【等值线】工具,做出来效果都一般。我自认为自己做出来的效果还可以,把步骤分享给大家。 一、

pink_pig__的博客 5万+

CodeBuddy 接入 MCP,一键生成网站!

2024 年 11 月,Anthropic 公司搞了个挺有意思的新玩意 - Model Context Protocol(模型上下文协议)简称为 MCP 协议。简单来说,它就是给 AI 和各类工具数据之间搭了个标准化的”桥梁”,让开发者不用再为对接问题头疼了。mcp.so如下图所示,这是 mcp.so 网站中的 MCP Server。使用百度/高德地图分析旅线计算时间接 Puppeteer 自动操作网页使用 Github/Gitlab 让大模型接管代码仓库。

悟空聊架构的专栏 1945

VB1010实例(4)圆形窗体

前台 代码 Imports System.Runtime.InteropServices '我的操作系统是win7,64位,long类型是64位 '需要设置为:编译--高级编译--目标CPU--x64 '单击变椭圆,双击还原 Public Class Form1 <DllImport("gdi32.dll", EntryPoint:="CreateEllipticRgn", ...

复行数十步 528

在trae CN中使用conda环境(已解决)

Trae CN 是字节跳动于 2025 年 3 月 3 日发布的国内首个 AI 原生集成开发环境(AI IDE)123。

zwzscnds的博客 6937

WPF 创建无边框的圆角窗口

如题所述,要创建一个没有

nncrystal的专栏 1万+

【智能制造】- APS系列|05 APS 排产的五大底层算法逻辑

很多人误以为APS只是给生产工单排先后顺序,实则整套系统依托成熟算法体系,完成多维度约束下的最优生产决策在制造业数字化排产普及的当下,依旧有不少制造管理者对APS存在认知误区,将其等同于简易工单排序工具。事实上,专业级高级计划与排程系统,早已脱离单纯按时间排序的基础功能,而是依托一整套成熟完善的底层算法逻辑,整合现场各类生产限制条件,在海量变量中自动推演、筛选、输出最贴合企业经营目标的生产方案。

qq_40821260的博客 433

YOLOv8工业缺陷检测实战:攻克光照不均难题,精度从70%到92%的全流程优化(附缺陷数据集)

YOLOv8在工业缺陷检测中突破光照不均难题,核心是“硬件控光+数据造景+模型聚焦+训练攻坚硬件控光:从源头减少光照变异,降低算法难度;数据造景:用CLAHE、合成样本让模型“见过足够多的光照情况”;模型聚焦:用ECA注意力和Focal-EIoU损失,让模型盯住缺陷而非光照;训练攻坚:分阶段+难例挖掘,强迫模型学习薄弱点。这套方案已在汽车轴承、手机外壳、PCB板3类产线落地,平均精度提升20%+,漏检率控制在0.08%以内,完全满足工业级要求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1195

CWinfrom圆形窗体与圆角Panel示例程序:让Winfrom应用更美观的解决方案

CWinfrom圆形窗体与圆角Panel示例程序:让Winfrom应用更美观的解决方案 去发现同类优质开源项目:https://gitcode.com/ CWinfrom圆形窗体与圆角Panel示例程序,一套C#编写的Winfrom应用程序示例,助您轻松实现圆形窗体和圆角Panel设计。 项目介绍 在现代软件开发中,用户界面(UI)的美观程度直接影响着软件的受欢迎程度。CWinfrom圆形窗体与圆...

gitblog_06734的博客 1025

GRSL 2026 即插即用 | Transformer篇 | DCSA:动态稀疏门控自注意力,兼顾长距离依赖与局部细节表达!

SDANet整体架构和模块Dynamic Channel Sparse Attention (DCSA):DCSA为Transformer块中的自注意力层。DCSA架构:样本级动态稀疏注意力:首次实现每个样本独立预测注意力稀疏度:通过轻量门控网络根据输入特征的复杂度自适应调整保留的通道数,简单样本使用更高稀疏度(如保留 20% 通道),复杂样本使用更低稀疏度(如保留 80% 通道),在保证精度的前提下平均计算量降低 50% 以上。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 108

C winform窗体四个角变成圆角美观窗体:让您的界面焕然一新

C# winform窗体四个角变成圆角美观窗体:让您的界面焕然一新 去发现同类优质开源项目:https://gitcode.com/ 在软件开发中,UI界面的美观性和用户体验至关重要。一个界面是否吸引人,往往决定了用户对软件的第一印象。C# winform窗体四个角变成圆角的项目,正是为了提升窗体界面的美观性而诞生。以下,我们将深入探讨这个项目的核心功能、技术实现、应用场景和特点。 项目介绍 C#...

gitblog_06775的博客 688

SAP Group Reporting入门指南(8)--业务操作

关于资产负债表类的匹配,系统预设了SGR01和SGR02两个方法,主要区别在于数据的来源范围,SGR01取自ACDOCA和ACDOCU,如果是0F类型的就会直接显示日记账分录(期间是000的除外,这类凭证是年结结转的,系统不再跨年追溯),如果是其他类型就显示合并分录。这里是我觉得SAP还需要优化的地方。基于ICMR的抵消任务中通常将抵销差异细分为交易差异、货币换算差异和其他差异,这在基于重分类抵消任务是无法实现的,基于重分类抵消只知道一个差异总额,很难从合并抵消凭证看出差异的来源,也没有审计线索可言。

bflyfish的博客 276

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Winform窗体半透明,控件不透明,及皮肤美化效果

先看效果图:        其实网上实现窗体半透明,控件不透明的方法很多,能用微软的API做出效果固然很好,然而其实现方法上有点点复杂,我个人没怎么去深究这个问题,因为我只想实现这个效果而已,选择一个简单的方法是最好的,这样学友们也能够容易理解,那就我简单的介绍下我个人的一个窗体透明实现流程。 1:新建一个窗体,我命名为Form2   上面有几个窗体缩小,最大化,及关闭的按钮,自己

英雄主义 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

java扇面渐变色如何实现,CorePlex开发手记:一、Winform窗体皮肤及简单换肤机制...

前言: CorePlex代码库 作为一个Visual Studio插件, 允许用户通过VS直接访问在线代码库。开发过程中我翻阅了很多网上的资料,也总结了一些技术要点,现写成系列文章,以飨读者。同时,里面某些技术也是我第一次使用,如有不对的地方,还请行家狠拍,欢迎大家指正~闲话休絮,进入正题。从本篇文章开始,介绍 CorePlex 的窗体皮肤机制,以及简单的换肤功能。我们先来看看效果: 换一个皮肤看...

weixin_34008968的博客 358

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

WPF制作无边框窗体、圆角窗体、支持改变大小、拖动分屏等(二)

目录上节回顾制作圆角窗体圆角及阴影窗体拖动、拖动分屏窗体改变尺寸窗体功能按钮使用RRQMSkin创建圆角窗体结束 上节回顾 上节已经说到如何创建一个无边框窗体,那么这节就说说如何创建圆角窗体。 开整(分割线搞个仪式) 制作圆角窗体 思路: 圆角窗体比较麻烦,网上的实现思路也五花八门,例如:WinApi直接设置窗口句柄、双窗体重叠、透明窗体+Border等。本文得思路就是透明窗体+Border,因为在本猿测试的时候发现第一种方法很容易出错,句柄不兼容等,第二种方法在Tab切换视图的时候很容易看出来,而且

若汝棋茗 的博客 5660

c# 对窗体绘制圆角边框

对于form, 当BorderStyle = None时, 绘制圆角, 需要使用graphicspath的AddArc方法。               程序如下               protected override void OnPaint(PaintEventArgs e)         {             base.OnPaint(e);

wangjianpeng361的专栏 9949

winform 窗体设置成无边框、可拖拽、四周圆角

winform 窗体设置成无边框、可拖拽、四周圆角 转自:https://www.cnblogs.com/xiaolong617/p/3237774.html 最近做一个及时通讯系统的登录界面,现在将界面用到的无边框、可拖拽、四周圆角的方法分享如下: 1、无边框的窗体: 把FormBorderStyle的属性设置为none 2、可拖拽: private Point mPoint =...

zhouxiaoyang0110的博客 1936

WPF去掉边框及设置圆角框

去掉窗体边框 <windows WindowStyle="None" AllowsTransparency="True"></windows> 设置窗体不可手动改变大小 <windows ResizeMode=NoResize></windows> 窗体无边框时拖动窗体 在XAML中写入MouseMove事件 <Window x:Cl...

Nikita 2140
上一篇: 使用Datagrid (1)
下一篇: CInt() 和 Convert.ToInt32() 在转换Bool值时 结果是不一样的
AntingZ
博客等级 码龄23年 13粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值