Vb.net/VB 声明API函数实现父窗体功能

回顾第一次敲机房收费,自己调用了api函数实现了父窗体及其子窗体最小化的功能,如今再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course!

其实仔细看两者并没有多大的区别,先看看在vb.net中如何调用:

首先添加一个类模块,来封装此API函数:

<span style="font-size:14px;"> Public Declare Function SetParent Lib "<span style="color:#ff0000;">user32</span>" (ByVal hWndChild As Integer, ByVal hWndNewParent As Integer) As Integer</span>

然后在窗体中直接调用即可满足自己想要的需求

<span style="font-size:14px;">SetParent(FrmRegisterCard.Handle.ToInt<span style="color:#ff0000;">32</span>, Me.Handle.ToInt<span style="color:#ff0000;">32</span>)</span>

注:虽然实现了其想要的功能,但自我感觉窗体的大小也要更加子窗体来自我修改一下:

             <span style="font-size:14px;">FrmRegisterCard.Width = Me.ClientRectangle.Width - 800
        FrmRegisterCard.Height = Me.ClientRectangle.Height - 200
        SetParent(FrmRegisterCard.Handle.ToInt32, Me.Handle.ToInt32)
        FrmRegisterCard.Show()</span>

下边来谈谈与VB的API函数声明的区别:

1、其中最主要的一个区别就是在vb中定义的数据类型是long,而在vb.net中则使用Integer来取代long,因为在vb.net中Integer类型是32位的,和long类型一样。

2、要注意使用ByVal和ByRef

  • ByVal是传递值,源数据不会被修改,可以把这个值当做自己的局部变量来使用;(传递参数内存给被调用者)
  • ByRef是传递地址,源数据可能被修改。(传递参数地址给被调用者)

3、在主窗体调用API函数的时候要注意“Handel.ToInt32”的使用,他等同于vb调用过程中的.hwnd

H:handle;Wnd:变量对象描述,也就是所谓的窗体,所以Handel.ToInt32也就是所谓的窗口句柄的意思吧!

在此也只是自己的理解,先把对API的理解放到这里,为再次学习打个基础吧!

Vb.net/VB 声明API函数实现父窗体功能,布布扣,bubuko.com

时间: 2024-12-11 18:08:57

Vb.net/VB 声明API函数实现父窗体功能的相关文章

Vb.net/VB 声明API函数实现父窗口功能

回想第一次敲机房收费.自己调用了api函数实现了父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别.先看看在vb.net中怎样调用: 首先加入一个类模块,来封装此API函数: <span style="font-size:14px;"> Public Declare Function SetParent Lib "<span style="color

C# 窗体常用API函数 应用程序窗体查找

常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间 (1)获得当前前台窗体句柄 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值类型

Delphi使用Windows API函数AnimateWindow实现窗体特效

{**********************************************************************API函数 AnimateWindow 使用:函数功能:窗体显示和隐藏时产生特殊的动画效果:可以产生两种类型的动画效果:          滚动动画 和 滑动动画函数原型:BOOL AnimateWindow(HWND hWnd, DWORD dwTime, DWORD dwFlags)参数说明:hWnd 指定产生动画效果的窗体的句柄:          

c# 使用api函数 ShowWindowAsync 控制窗体

1.需要匯入 System.Runtime.InteropServices 命名空間 2.宣告 ShowWindowAsync 函數 [DllImport("user32.dll")] private static extern bool ShowWindowAsync( IntPtr hWnd, int nCmdShow ); 3.宣告 ShowWindow函數 [DllImport("user32.dll")] public static extern int 

Vb.net/VB 声明API功能父窗口功能

回想第一次敲房费,他说自己是api函数实现父窗口及其子窗口最小化的功能.现在再次遇到,自己就在思考,能不能继续使用API函数呢?答案当然是Of Course! 事实上细致看两者并没有多大的差别,先看看在vb.net中怎样调用: 首先加入一个类模块.来封装此API函数: <span style="font-size:14px;"> Public Declare Function SetParent Lib "<span style="color:#f

VB调用API函数

API函数快速入门--怎样在VB中声明和使用API函数-- 一.在VB中声明API函数有两种方法:如果我们只在某个窗体中使用API函数,我们可以在窗体代码的 General部分声明它: 声明的语法是: Private Declare Function ... Private Declare Sub..... 这里必须采用Private声明,因为这个API函数只能被一个窗体内的程序所调用. 如果我们的程序有多个窗体构成,而且我们需要在多个窗体中使用同一个API函数,就需要在模块中 声明了. 先添加

VB.NET 章鱼哥出品--利用API函数AnimateWindow创建Popup提示窗口

当我们打开电脑上网时,是不是会经常看到桌面的右下角弹出一个小的新闻热点窗体,我们可以实现吗?当然可以,这篇文章就来给您掩饰怎么样来用代码实现.看吧,正写着呢弹出了一个. 一.主要用到的函数是API函数AnimateWindow.下面来简单的介绍一下这个函数的使用. 1 函数声明 '声明API函数AnimateWindow.该函数可以动态的操作窗体 Declare Function AnimateWindow Lib "user32" Alias "AnimateWindow&

VB.NET章鱼哥出品—如何解决MDI子窗体被父窗体中的控件覆盖的问题

最近有个网友问我这个问题,我就上网搜了下,结果很失望,有几个在CSDN上发的求助帖,看到最后都没有找到明确的答案.这里笔者在网上找到了API函数SetParent(),并对网上的错误进行了修改,并给出了简单实例代码.读者可自行测试: Public Class Form1 '作者:章鱼哥,QQ:3107073263 群:309816713 '如有疑问或好的建议请联系我,大家一起进步 '声明SetParent函数,这是一个API函数 Declare Function SetParent Lib "u

VB程序破解之API断点[bp __vbaVarTstEq]

软件名称:风云足彩1.7软件大小:2.1M下载地址:http://free.ys168.com/?zhinengxuanhao软件保护:注册码编写软件:Microsoft Visual Basic 5.0 / 6.0 [Debug]破解工具:PEiD,OD破解作者:WildCatIII[D.4s] 引用: 软件介绍:足彩智能选号全能版足彩智能选号全能版 提供了足彩独特选号的方法.不论是足彩高手还是初玩者,足彩智能选号全能版都为他们提供了整套工具,以方便稳中一等奖. 但是,工具不是一个万能.能不能