W dniu 16-05-2015 o 10:41, affix pisze:
> Witam
>
> Jak spowodować aby MsgBox nie wyświetlał się centralnie na ekranie a wyświetlił się w innym, wybranym przeze mnie miejscu np. prawy, górny róg.
>
W skrócie mniej więcej tak:
Private Declare Function MoveWindow Lib "user32" ( _
ByVal hwnd As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal bRepaint As Long) As Long
Private Declare Function GetWindowRect Lib "user32" ( _
ByVal hwnd As Long, _
lpRect As RECT) As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Dim m_MoveLeft As Long
Dim m_MoveTop As Long
'___________________________
Private Sub btnMsgbox_Click()
' Przed wyświetleniem okna Msgbox uruchamiamy Timer,
' wyświetlamy okno dialogowe,
' pozostałą część operacji wykonujemy w Form_Timer
m_MoveLeft = 100 '(lewy narożnik okna MsgBox - 100 pikseli od lewej
krawędzi monitora
m_MoveTop = 200 '(lewy narożnik okna MsgBox - 200 pikseli od górnej
krawędzi monitora
Me.TimerInterval = 200
MsgBox "Okno dialogowe, którego szukamy.", vbExclamation
End Sub
'____________________________
Private Sub Form_Timer()
Dim hActiveWind As Long
Dim hWind As Long
Dim rct As RECT
' wyłączamy Timer
Me.TimerInterval = 0
hActiveWind = GetActiveWindow
GetWindowRect hActiveWind, rct
With rct
MoveWindow hActiveWind, m_MoveLeft, m_MoveTop, .Right - .Left,
.Bottom - .Top, True
End With
End Sub
--
Pozdrowienia
BraZby
www.faq.accdb.pl/
www.acc97.accdb.pl/