Finns det något sätt att styra positionen på msgbox'en på skärmen? Jag har sett ett sådant exempel i resource library - sök där! Jag har forsokt att kora denna kod utan att lyckas. Det som hander ar att koden kors ýgenom men so výsas ýnte msgbox alls, koden stannar pa detta stalle. Som du ser krävs det en jäkla massa krångelkod för att göra en sån enkel sak. En betydligt enklare lösning är att designa ditt eget MsgBox liknande formulär som du visar där du önskar på skärmen.Styra msgbox positionen på skärmen
//UJSv: Styra msgbox positionen på skärmen
/PelleSv: Styra msgbox positionen på skärmen
Public Declare Function UnhookWindowsHookEx Lib "user32" (ByVal lpHook As Long) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function GetCurrentThreadId Lib "kernel32" () As Long
Public Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
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 mlHooked As Long
Function WinProc(ByVal lMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Const HCBT_ACTIVATE = 5
Const SWP_NOSIZE = &H1
Const SWP_NOZORDER = &H4
Const SWP_NOACTIVATE = &H10
If lMsg = HCBT_ACTIVATE Then
SetWindowPos wParam, 0, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOZORDER Or SWP_NOACTIVATE ' 'Show the MsgBox
'Release the hook
UnhookWindowsHookEx mlHooked
End If
End Function
Private Sub Command1_Click()
Dim llInst As Long
Dim llThread As Long
Const GWL_HINSTANCE = (-6)
Const WH_CBT = 5
'get the window
llInst = GetWindowLong(Me.hwnd, GWL_HINSTANCE)
'get the thread
llThread = GetCurrentThreadId()
'hook it
mlHooked = SetWindowsHookEx(WH_CBT, AddressOf WinProc, llInst, llThread)
'Display the message box
MsgBox "This message box is in a different position?"
End Sub
//UJSv: Styra msgbox positionen på skärmen
MS