Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Pozycja na ekranie MsgBox'a

389 views
Skip to first unread message

affix

unread,
May 16, 2015, 4:41:39 AM5/16/15
to
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.

Pozdrawiam
Marek Walczak

Maciej Tokarz

unread,
May 18, 2015, 1:06:19 AM5/18/15
to
> 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.

Witaj,

Osobiście nie definiowałem czegoś takiego, ale można spróbować posłużyć
się np. takim kodem:
http://www.excely.com/excel-vba/define-a-position-of-messagebox.shtml
definiując własną definicję MsgBox-a (MsgBoxPos). Nie testowałem
przykładu, wg. autora pójdzie w VBA.

Maciej

Zbigniew Bratko

unread,
May 19, 2015, 11:52:28 AM5/19/15
to
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/

marekwal...@gmail.com

unread,
Aug 23, 2015, 9:12:25 AM8/23/15
to
Moja wina, że nie odpisałem na tego posta. Z pewnych przyczyn omusiałem odłożyć problem na bok na jakiś czas. A później jak do niego wróciłem to zrobiłem własny formularz z przyciskami TAK i NIE, który okazał się wystarcząjący.

Jeszcze raz. Dzięki za odpowiedź i sorry za brak odpowiedzi. Mea culpa.

Pozdrawiam
MW - affix
0 new messages