PDA

Visualizza la versione completa : [vb] msgbox in primo piano


magnus
19-05-2002, 10:40
Come posso avere una msgbox che sia visualizzata sempre in primo piano ( indipendentemente dalle applicazioni in corso )?

Grazie.

steno12
19-05-2002, 15:24
msgbox("ciao amico come va....?")

magnus
19-05-2002, 19:54
Come dici tu non viene visualizzata sempre in primo piano...

Per adesso l'unico modo che ho trovato è fare così:

MsgBox "CIAO!!!!", vbSystemModal, "Saluto"

Esistono altri metodi senza usare le API?

Ciao.

steno12
19-05-2002, 21:40
crea un nuovo progetto e incolla questo codice:

'-----------taglia da quì-----------------------
Private Sub Form_Activate()
Form1.Visible = False
Dim mes(2) As String
mes(1) = "Questo è un messaggio senza API"
mes(2) = "ciao amico come va.........?"
Dim msg, Style, Title, Help, Ctxt, Response, MyString
msg = " ....... a risentirci a presto amico" & vbCrLf & "In effetti la tua msgbox rimane sempre" & vbCrLf & "in primo piano" & vbCrLf & "Invece la mia no" & vbCrLf & "grazie per l'aiuto!"
Style = vbYesNo + vbCritical + vbDefaultButton2
Title = " Vuoi creare un messaggio senza API ?"
Response = MsgBox(msg, Style, Title, Help, Ctxt)
If Response = vbYes Then
MyString = "Sì"
Form1.Visible = True
Form1.Print mes(1)
Form1.Print mes(2)
Exit Sub
Else
MsgBox ("Hai scelto quella che rimane sempre in piano" & vbCrLf & "ciao amico come va....?")
End
Exit Sub
End If
End Sub
'--------------a quì---------------------

Boldan
20-05-2002, 11:06
Innanzitutto premetto che (dall'esperienza che ho avuto) non puoi visualizzare un msgbox sempre in primo piano.
Devi costruirti una form per visualizzare tale messaggio alla quale (attraverso un API) dai la proprietà StayOnTop.
Tale API è la seguente:



Private 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

Const HWND_TOPMOST = -1
Const SWP_NOMOVE = &H2
Const SWP_NOSIZE = &H1

Private Sub Form_Load()
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
End Sub

Spero sia abbastanza chiaro, fammi sapere...

Ciao!!:master:

Loading