?? 在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 + -