Hej Hej, Jag är inte säker med test att ändra till:Hjälp med fil #859 - Trycka ned ett fönster
Har laddat ner Programarkivet:Trycka ned ett fönster som t.ex ett verktygsfält gör och den fungerar utmärkt!
Som det är nu så dockar den i överkant men jag vill att det ska lägga sig i underkant. HAr försökt på massa olika vis men jag får inte till det. Jag får själva appbaren att hamna rätt men inte att få upp resten av bilden.
Denna kod har rätt storlekar men nu är alltså appbaren överst och jag vill ha den underst.Public Const ABE_TOP = 1
Public Const ABM_NEW = &H0
Public Const ABM_REMOVE = &H1
Public Const ABM_SETPOS = &H3
Public Const HWND_TOP = 0
Public Const SWP_NOACTIVATE = &H10
Public Const SPI_GETWORKAREA = 48
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Public Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long
End Type
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Public Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Public ABD As APPBARDATA
Public MyAppBar As frmKeyboard
Public Sub ShowAppBar()
Dim lResult As Long
Dim apiRect As RECT
'Open app bar
Set MyAppBar = New frmKeyboard
' Register a new appbar and reserve the screen area.
Call SystemParametersInfo(SPI_GETWORKAREA, vbNull, apiRect, 0)
ABD.hwnd = MyAppBar.hwnd
lResult = SHAppBarMessage(ABM_NEW, ABD)
lResult = SetRect(ABD.rc, apiRect.Left, apiRect.Top, apiRect.Right, apiRect.Bottom)
' Set the desired appbar location.
With ABD
.uEdge = ABE_TOP
.rc.Top = apiRect.Top
.rc.Left = apiRect.Left
.rc.Right = apiRect.Right
.rc.Bottom = 290
lResult = SHAppBarMessage(ABM_SETPOS, ABD)
lResult = SetWindowPos(.hwnd, HWND_TOP, .rc.Left, .rc.Top, .rc.Right - .rc.Left, .rc.Bottom, SWP_NOACTIVATE)
End With
MyAppBar.Show
End Sub
Hoppas nån vet hur jag ska lösa det för jag kommer inte på det själv :)
Sv: Hjälp med fil #859 - Trycka ned ett fönster
Om du vill att den skall hamna i nederkant så får du deklarera en ny constant:
<code>Public Const ABE_BOTTOM = 3</code>
som du använder istället för ABE_TOP. Det finns fler konstater för höger och vänster sida som du kan hitta i hjälpen.
Vad du menar med "få upp resten av bilden" är jag inte med på. Kan du utveckla din fråga här?
// JohanSv: Hjälp med fil #859 - Trycka ned ett fönster
<code>
.rc.Bottom = apiRect.Bottom - 290
</code>
Thomas