PDA

Visualizza la versione completa : API MessageBox


fungo
16-09-2002, 14:37
Ciao gente, volevo una piccola info sulla API MessageBox.

' MessageBox personalizzate
Public Const MB_DEFBUTTON1 = &H0&
Public Const MB_DEFBUTTON2 = &H100&
Public Const MB_DEFBUTTON3 = &H200&
Public Const MB_ICONASTERISK = &H40&
Public Const MB_ICONEXCLAMATION = &H30&
Public Const MB_ICONHAND = &H10&
Public Const MB_ICONINFORMATION = MB_ICONASTERISK
Public Const MB_ICONQUESTION = &H20&
Public Const MB_ICONSTOP = MB_ICONHAND
Public Const MB_OK = &H0&
Public Const MB_OKCANCEL = &H1&
Public Const MB_YESNO = &H4&
Public Const MB_YESNOCANCEL = &H3&
Public Const MB_ABORTRETRYIGNORE = &H2&
Public Const MB_RETRYCANCEL = &H5&

Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _
(ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, _
ByVal wType As Long) As Long


Private Sub Form_Load()

MessageBox Me.hwnd, "KPD-Team 1998", App.Title, MB_OK

End Sub


Questo funzione, che chiama la API MessageBox mi permette di personalizzare le MsgBox, io vorrei anche poter modificare le iconcine sostituendo quelle di sistema con delle icone personalizzate.

Come posso fare?

Grazie

xegallo
16-09-2002, 14:50
Originariamente inviato da fungo
Ciao gente, volevo una piccola info sulla API MessageBox.

' MessageBox personalizzate
Public Const MB_DEFBUTTON1 = &H0&
Public Const MB_DEFBUTTON2 = &H100&
Public Const MB_DEFBUTTON3 = &H200&
Public Const MB_ICONASTERISK = &H40&
Public Const MB_ICONEXCLAMATION = &H30&
Public Const MB_ICONHAND = &H10&
Public Const MB_ICONINFORMATION = MB_ICONASTERISK
Public Const MB_ICONQUESTION = &H20&
Public Const MB_ICONSTOP = MB_ICONHAND
Public Const MB_OK = &H0&
Public Const MB_OKCANCEL = &H1&
Public Const MB_YESNO = &H4&
Public Const MB_YESNOCANCEL = &H3&
Public Const MB_ABORTRETRYIGNORE = &H2&
Public Const MB_RETRYCANCEL = &H5&

Public Declare Function MessageBox Lib "user32" Alias "MessageBoxA" _
(ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, _
ByVal wType As Long) As Long


Private Sub Form_Load()

MessageBox Me.hwnd, "KPD-Team 1998", App.Title, MB_OK

End Sub


Questo funzione, che chiama la API MessageBox mi permette di personalizzare le MsgBox, io vorrei anche poter modificare le iconcine sostituendo quelle di sistema con delle icone personalizzate.

Come posso fare?

Grazie
ma non ti converrebbe usare una form fatta uguale?

fungo
16-09-2002, 14:55
Certo, sarebbe più semplice da fare...Ma voglio capire come funzionano le API di windows.

Grazie.

xegallo
16-09-2002, 15:18
Originariamente inviato da fungo
Certo, sarebbe più semplice da fare...Ma voglio capire come funzionano le API di windows.

Grazie.
giusto buona cosa
cmq le costanti che hai elencato prima (riguardo alle icone) sono il risultato di questa chiamata api

Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
sul file shell32.dll


in pratica sapendo l'handle della tua icona puoi aggiungere

Public Const MB_ICONMiaIcona = l'handle della tua icona

fungo
17-09-2002, 09:30
Grazie per il tuo aiuto.

Viniamo a noi, io quello che voglio e modificare l'icona delle MsgBox, perciò devo recuperare l'handle dell'icona della MsgBox?

Una volta recuperata sostituire con l'icona nuova, ed è proprio qui che mi perdo.

Aspetto un'altro suggerimento.

xegallo
17-09-2002, 18:30
Originariamente inviato da fungo
Grazie per il tuo aiuto.

Viniamo a noi, io quello che voglio e modificare l'icona delle MsgBox, perciò devo recuperare l'handle dell'icona della MsgBox?

Una volta recuperata sostituire con l'icona nuova, ed è proprio qui che mi perdo.

Aspetto un'altro suggerimento.
prova a mettere la tua icona in una picturebox e usare il valore della prop image o hdc per creare la costante della tuo icona

Loading