Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As Long Private Sub Command1_Click() MessageBox Me.hwnd, "这里是内容", "标题", 0 End Sub
先让我们来分析一下,首先看第一个参数Byval hWnd As Long,很显然这是一个长整形变量,所以我们这里需要传递的是数字,你可能会发现我们传递的并不是数字啊,而是 Me.hwnd??很奇怪是吗?如果你真的有此疑问说明你是真心想要学习好API的,现在就让我们来看看Me.hwnd到底是什么东西?以下摘自VB帮助文档: hWnd 属性:返回窗体或控件的句柄。 句 柄:是由操作环境定义的一个唯一的整数值,它被程序用来标识或者切换到对象,如窗体或控件等。
接上面的,首先我们传入了Me.hwnd,表示是当前窗口调用MessageBox,这里告诉大家一个技巧,也就是以后凡是看到Byval hwnd As Long,一般都是需要传入句柄的,至于传入哪个对象句柄,那就要看你是怎么实现的了。 ByVal lpText As String,这个是字符串变量,标识着叫我们需要传入字符串进去,可以看里面的变量字符lpText,属于文本的意思,也就是说是用来显示MsgBox中的消息文本的。 ByVal lpCaption As String,也是字符串变量,还是传入字符串进去。在看里面的变量字符lpCaption,其实就是显示MsgBox标题的。 ByVal wType As Long,这是一个整形变量,需要传递整形数字,还是看里面的变量字符wType,标识着显示MsgBox类型,这里可以像VB的MsgBox一样使用,如这里可以传入:vbYesNo,vbOkCancel等,如果忽略那就传入0即可。
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Private Const GW_OWNER = 4 Private Const SW_HIDE = 0 Private Sub Form_Load() Dim lphWnd As Long lphWnd = GetWindow(Me.hwnd, GW_OWNER) ShowWindow lphWnd, SW_HIDE End Sub