📄 在msgblst中如何处理指向结构变量的地址.txt
字号:
现 在 又 是 我 卖 弄 技 巧 的 时 候 了 。 在 窗 体 中 加 上 如 下 声 明 :
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
(hpvDest As Any, ByVal hpvSource As Long, ByVal cbCopy As Long)
Const WM_WINDOWPOSCHANGING = &H46
Private Type WINDOWPOS
hwnd As Long
hWndInsertAfter As Long
x As Long
y As Long
cx As Long
cy As Long
flags As Long
End Type
Dim posWin As WINDOWPOS
然 后 在 窗 体 上 加 上 一 个 MsgBlst控 件 , 加 入 如 下 代 码 :
Private Sub Form_Load()
Msgblst321.hWndTarget = hwnd
Msgblst321.MsgList(0) = WM_WINDOWPOSCHANGING
End Sub
Private Sub Msgblst321_Message(ByVal MsgVal As Long, ByVal wParam As Long, ByVal lParam As Long, lplRetVal As Long)
CopyMemory posWin, lParam, Len(posWin)
Debug.Print posWin.cy
If posWin.cy < 200 Then
posWin.cy = 200
CopyMemory ByVal lParam, VarPtr(posWin), Len(posWin)
End If
End Sub
这 里 我 们 限 制 窗 体 的 高 度 为 200个 像 素 。 我 们 先 使 用 CopyMemory将 WM_WINDOWPOSCHANGING的 结 构 变 量 的 内 容 拷 贝 到 VB的 变 量 中 , 修 改 后 再 使 用 CopyMemory拷 贝 回 去 。 就 这 么 简 单 , 感 受 到 了 Msgblst的 神 奇 魅 力 了 吗 ?
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -