C#中纯代码实现界面设计,不受VS中的拖拽图像界面限制

本文介绍了如何在C#中通过代码实现界面设计,绕过Visual Studio的拖拽方式。讲解了NativeWindow类的角色,CreateParams属性的重要性,以及user32.dll和gdi32.dll在用户界面实现中的作用。并提供了代码实现的步骤概述。
摘要由CSDN通过智能技术生成

第一步:需要了解的基本知识

NativeWindow:该类自动管理窗口类的创建和注册。当窗口与窗口句柄关联时,该窗口不适合进行垃圾收集。为了确保正确的垃圾回收,必须使用DestroyHandle手动销毁句柄,或者使用ReleaseHandle释放句柄。NativeWindow类提供以下属性和方法来管理句柄:句柄、CreateHandle、AssignHandle、DestroyHandle和ReleaseHandle。详细请见:https://docs.microsoft.com/enus/dotnet/api/system.windows.forms.nativewindow?view=netframework-4.8

CreateParams:封装创建控件时所需的信息。CreateParams中的信息可用于传递关于控件初始状态和外观的信息。大多数控件派生的控件都覆盖CreateParams属性,以传入适当的值或在CreateParams中包含附加信息。用于设置样式、ExStyle和ClassStyle属性的常量在Winuser.h头文件中定义。该文件由平台SDK或Visual Studio安装。详细请见:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.createparams?view=netframework-4.8

user32.dll:是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。在早期32-bit 版本的Windows中,用户控件是在ComCtl32中实现的,但是一些控件的显示功能是在User32.dll中实现的。例如在一个窗口中非客户区域(边框和菜单)的绘制就是由User32.dll来完成的。User32.dll 是操作系统的一个核心控件,它和操作系统是紧密联系在一起的。也就是说,不同版本的Windows中User32.dll 是不同。因此,应用程序在不同版本的Windows中运行的时候,由于User32.dll的不同,会导致应用程序的界面通常会有微小的不同,详细请见:
https://blog.csdn.net/nodeman/article/details/82424076

gdi32.dll:系统文件gdi32.dll是存放在Windows系统文件夹中的一个动态链接库,是windows下图形用户界面的应用拓展,通常情况下是在安装操作系统过程中自动创建的,对于系统正常运行来说至关重要。除非用户电脑被木马病毒、或是流氓软件篡改导致出现gdi32.dll丢失、缺失损坏等弹窗现象,否则不建议用户对该类文件(gdi32.dll)进行随意的修改。(至于里面的函数,大家一个个到百度搜索吧)

第二步:代码实现

效果如图:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值