首页
学习
活动
专区
圈层
工具
发布

创建可调大小的用户窗体——使用Windows API

标签:VBA,Windows API 在使用VBA创建用户窗体时,通常会将其设置为特定的大小。然而,通过一些编码技巧,可以为其实现类似的调整大小效果。...本文代码能够实现:允许调整用户窗体的大小;调整窗体大小时用户窗体的Resize事件能捕获;每次Resize事件后,对象的大小或位置都会发生变化。...windowStyle + (WS_THICKFRAME) End If '应用新样式 SetWindowLong windowHandle, GWL_STYLE, windowStyle '使用新样式重新创建用户窗体窗口...DrawMenuBar windowHandle End Sub 上面的两个代码段创建了一个可重复使用的过程,可以使用它来打开或关闭调整用户窗体大小的设置。...如果想要能够调整用户窗体大小,使用: Call ResizeWindowSettings(myUserForm, True) 关闭调整用户窗体大小,使用: Call ResizeWindowSettings

97330

Windows 窗体中的事件顺序

,Windows 窗体应用程序中引发事件的顺序非常具有吸引力。...有关鼠标输入事件的顺序的特定详细信息,请参阅Windows 窗体中的鼠标事件。Windows 窗体中的事件的概述,请参阅事件概述。 有关事件处理程序的构成的详细信息,请参阅事件处理程序概述。...Windows 窗体应用程序启动时,主窗体的启动事件将按照以下顺序引发: Control.HandleCreated Control.BindingContextChanged Form.Load...焦点和验证事件 当通过使用键盘(TAB、SHIFT+TAB 等),通过调用 Select 或 SelectNextControl 方法,或通过将 ActiveControl 属性设置为当前窗体来更改焦点时...,Control 类的焦点事件将按以下顺序发生: Enter GotFocus Leave Validating Validated LostFocus 当通过使用鼠标或调用

1.6K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows平台实现Unity下窗体|摄像头|屏幕采集推送

    基于此,好多开发者苦于在Unity环境下,没有低延迟的推拉流解决方案,前几年,我们在Unity环境下推出了跨平台低延迟的RTMP|RTSP直播播放器,很好的解决了好多对延迟要求苛刻的使用场景。...随着时间的推移,越来越多的开发者联系我们,希望我们能推出Unity环境下的RTMP推送模块,获取到unity的实时数据,更低延迟更高效率的实现数据传输推送,基于此,我们发布了Unity环境下的RTMP推送模块...本文以Windows平台为例,数据源分别为Unity的窗口、摄像头或整个屏幕,编码传输模块,还是调用大牛直播SDK(官方)的原生接口,简单界面先睹为快: win_publisher_unity2.png...技术实现 1....数据采集 摄像头和屏幕的数据采集,还是调用原生的SDK接口,本文不再赘述,如果需要采集Unity窗体的数据,可以用参考以下代码: if ( texture_ == null || video_width

    1.2K30

    使用线程新建WPF窗体(公用进度条窗体)

    使用线程新建窗体 项目中需要一个公用的进度条窗体.大家知道在wpf中,有两个线程,一个是UI线程,另一个是监听线程(一直监听用户的输入).如果我们后台有阻塞UI线程的计算存在,那么界面上的比如进度条什么动态的...所以我的想法就是新起一个线程来负责进度条窗体的显示与关闭,具体实现代码如下: private static Thread th; /// ///...win.Topmost = true; win.Show(); System.Windows.Threading.Dispatcher.Run...在使用过程中发现一个很严重的问题,出现一个进度条窗体,系统内存就会增大一点,到最后要么卡死,要么自动退出.      ...原来在多线程程序运行中,由用户取消操作是一种非常常见的场景,比如用户使用windows资源管理器在当前文件夹中搜索文件时,可以通过点击其它文件夹而取消搜索。

    2.3K100

    winform 窗体实现增删改查(CRUD)窗体基类模式

    ,而且由于BaseForm窗体没有对通用的函数进行进一步的抽象,因此,编辑及新增窗体多了很多重复累赘的代码,其实可以把新增、编辑合并一个窗体,然后根据新增、编辑两种不同的条件进行处理即可。...窗体的代码我大类采用了可重载的虚函数,留给子类窗体进行实现不同的处理操作,如窗体加载显示操作、显示数据到控件的操作、保存、新增等函数都是需要实现的,而调用逻辑以及一些通用的处理,则在基类BaseEditForm...{             this.DialogResult = DialogResult.Cancel;             this.Close();         } 其中值得介绍的是,窗体的控件数据清空在基类窗体中通过遍历实现了通用的数据清空操作...另外,基类窗体还实现了Tab键的转换,这个思路来源于即日嘎拉的代码,但由于是基类实现,有些不同,他的放在每个具体的子类中,因此通用性有些限制。...,看新增编辑界面需要实现的代码,如下所示,其中大部分是原子级别的操作,逻辑操作已经在基类中实现了哦: ?

    2.8K20

    实现iframe父窗体与子窗体的通信

    本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息。同时本文会提供一个可运行的实例代码,实现在父窗体中,获取到来自子窗体的数据的效果。...0.背景介绍 (1)需要在当前的前端项目中,使用iframe嵌套别的站点页面。 (2)当子窗体触发了一个事件后,要给父窗体传一个跳转地址的url。...父窗体监听到这个事件后,根据接收到的url,来更新当前父窗体的url,实现页面的跳转。...1.2 使用方法 (1) 在需要通信的父窗体、和子窗体的文档中,都需要引入MessengerJS。...同时提供了一个完整的实例,可以实现子窗体向父窗体传递消息,父窗体通过监听消息事件,来获取子窗体消息的目的。如有问题,欢迎指正。

    10.2K771

    使用Label标签控件模拟窗体标题的移动及窗体颜色不断变换

    开发工具:VS2017 语言:C# DotNet版本:.Net FrameWork 4.0及以上 一、使用的WIN32 API有两个,一个为ReleaseCapture,另外一个为SendMessage...为什么要使用这个ReleaseCapture函数,原因在于移动窗体标题时,需要释放对鼠标的捕捉,否则,就不能移动窗体标题。...SendMessage函数:该函数是用来给窗体发送Windows消息, 在本文中,该函数是模拟给非窗体客户区域(如窗体标题、最大化、最小化及关闭按钮区域)发送Windows消息,使特定区域能收到拖动窗体标题的消息...二、构建模拟移动窗体标题的应用程序,在这里我们使用了一个label(左边,label1),用来将鼠标移到该控件并拖动时,可以移动窗体, 另外一个label(右边,label2)则用来关闭窗体,如下图所示...private void label2_Click(object sender, EventArgs e) { this.Close(); } 其中,需要为关闭按钮填写显示“关闭”按钮的提示,因此需要使用

    1.9K00

    VBA使用API_03:创建窗体

    使用Excel VBA要创建窗体非常的简单,直接插入一个用户窗体就可以了,VBA已经封装好了窗体,而且具有很多功能以及控件。...这些在底层都是要调用API,只是我们看不到而已,让我们使用API来创建一个窗体试试,分三步: 注册窗体类 创建窗体 显示窗体、循环接收消息并处理 注册窗体需要用到RegisterClass,必须先要注册一个窗体类...,才能在第二步创建窗体CreateWindowEx进行创建,创建好后必须使用ShowWindow才能显示出来,窗体显示出来之后,如果没有其他要执行的程序,马上就会消失,因为程序运行完成了,所有资源被自动回收了...所以必须要循环接收消息以保证不退出程序,具体要处理的消息Windows已经做好了默认的DefWindowProc回调函数来处理,在RegisterClass的时候可以进行指定回调函数,我们可以在回调函数里去捕获消息进行处理...If RegisterClass(wc) 0 Then '创建窗体 hWnd = CreateWindowEx(0, "myForm", "myForm"

    2.1K20

    VB实现半透明或者部分透明窗体

    Windows2000已经出了n年多了,就先介绍一下Windows2000特有的API吧!!...ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long   '具体可以使用的常量及其用法...  Const LWA_ALPHA=&H2     '表示把窗体设置成半透明样式   Const LWA_COLORKEY=&H1     '表示不显示窗体中的透明色 具体例子 程序代码   Module1..., 0, 192, LWA_ALPHA     '把窗体设置成半透明样式,第二个参数表示透明程度     '取值范围0--255,为0时就是一个全透明的窗体了   End Sub   第二种使用方法...  SetLayeredWindowAttributes Me.hWnd, &H0, 0, LWA_COLORKEY     '表明不显示窗体中的透明色     '而第二个参数表示透明色为黑色,

    1.8K50

    如何使用paradoxiaRAT实现Windows远程访问

    paradoxiaRAT paradoxiaRAT是一款功能强大的本地Windows远程访问工具,该工具可以给广大研究人员提供如下表所示的功能: Paradoxia命令控制台: 功能 描述 易于使用 Paradoxia...的使用非常简单,可以算是最方便的远程访问工具了。...查看会话信息 查看会话信息 Paradoxia客户端: Feature Description 隐蔽性 在后台运行 完整的文件访问 提供整个文件系统的完整访问 持久化 在APPDATA下安装,通过注册表键实现持久化.../install.sh 工具使用样例 运行Paradoxia: sudo python3 paradoxia.py 进入到Paradoxia命令行终端之后,第一步就是要构建客户端(使用图标): ?...构建完成之后,我们将看到如下图所示的界面,Windows Defender会将其检测为恶意软件,这很正常: ? 接下来,我们需要将其发送到一台Windows 10虚拟机中并执行它。

    1.5K10

    Unity MVC丨(四)View:创建UI窗体的存放物体、UIRoot管理类

    因此,就有了本节内容: 创建“UI窗体的存放物体”,这个物体名为UIRoot,用以存放我们生成的UI “窗体管理类UIRoot”,这个类,用以自动生成UIRoot、将我们的UI设置到UIRoot中对应的位置去...二、创建UI窗体的存放物体 1、创建如下预制体 创建预制体,并放在Resources/UI下。该UI意义如下: UIRoot:是一个Canvas。...recyclePool:存放已经关闭的窗体 workstation:存放正在显示的窗体 noticestation:存放打开的、提示类型的窗体 2、修改预制体锚点 将recyclePool、workstation...三、UIRoot管理类 Assets/MVCLibrary下,创建UIRoot脚本,该脚本完成了: 若不存在存放UI窗体的UIRoot物体,就自动从Resources创建它 拥有公开接口,用以设置UI窗体的父物体.../// private static Transform workstation; /// /// 提示类型的窗体

    21510
    领券