我在Details模式下有一個VB6列表視圖,顯示X個項目。我想要創建某種自動高度函數,根據指定的寬度和項目數來評估高度。WinApi:計算ListView高度
下面的代碼沒有工作:
Public Declare Function MessageSend Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const LVM_FIRST As Long = &H1000
Public Const LVM_APPROXIMATEVIEWRECT As Long = (LVM_FIRST + 64)
Public Sub GetAutoWidth(lvw as ListView)
result = MakeLPAram(-1, 0)
MessageSend lvw.hWnd, LVM_APPROXIMATEVIEWRECT, -1&, result
lvw.height = loWord(result) * Screen.TwipsPerPixelX
End Sub
Public Function LoWord(value As Long) As Long
LoWord = (value And &HFFFF&)
End Function
Public Function MakeLPAram(wLow As Long, wHigh As Long) As Long
MakeLPAram = MakeLong(wLow, wHigh)
End Function
Public Function MakeLong(wLow As Long, wHigh As Long) As Long
MakeLong = LoWord(wLow) Or (&H10000 * LoWord(wHigh))
End Function
誰能幫助我?
它怎麼不起作用? – Deanna 2013-05-01 12:53:35
返回65535爲低字,0爲hi字。 – user884248 2013-05-01 13:04:02
請根據變量的值重新評論您的評論。 – 2013-05-01 23:00:13