Newsgroup: it.comp.lang.visual-basic
Titolo: [?]msgbox personalizate in stile Office

salve,
sto realizzando alcuni elementi di intefaccia utente per la mia pplicazione,
mi piacerebbe creare dei msgbox/inputbox simili a quelle di Office (i baloon
degli "assistenti" per capirci ..)
la cosa non è complessa nazi unico problema vorrei fare il tutto senza dover
usare un "form" di partenza.. la mia domada è questa come faccio a creare
una finestra con bottoni/txtbox tutto da codice si può?
grazie!

 una finestra con bottoni/txtbox tutto da codice si può?
[...]
Perchè non usare un form?
Se vuoi cambiargli la forma puoi usare questo codice, che ho estratto dalle
FAQ presenti sul sito comune
http://www.murialdo.it/it_lang_vb/
 :
-----------------------------------
Modificare la Forma di un form
TESTODOMANDA
Come si fa a dare una forma diversa ad un Form?
RISPOSTADOMANDA
Ti elenco quattro tipi di ridefinizione del bordo di una form:
Rettangolare - Form rettangolare (può essere rimpicciolito!)
Rounded  - Form con gli angoli smussati
Elliptic - Form di forma ellittica
AScudo   - Form di forma irregolare (uno scudo, stile norton)
----------- DICHIARAZIONI -------------
' By Fabio Guerrazzi - 1998
Option Explicit
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal x1 As Long,
ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long,
ByVal hRgn As Long, ByVal bRedraw As Long) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI,
ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal x1 As Long,
ByVal y1 As Long, ByVal x2 As Long, ByVal y2 As Long, ByVal x3 As Long,
ByVal y3 As Long) As Long
Dim ArPT(100) As POINTAPI
Sub Rounded()
    Dim x1 As Long, y1 As Long
    Dim x2 As Long, y2 As Long
    Dim x3 As Long, y3 As Long
    Dim Ret1 As Long, Ret2 As Long
    x1 = 0: y1 = 0
    x2 = Me.Width / Screen.TwipsPerPixelX
    y2 = Me.Height / Screen.TwipsPerPixelY
    x3 = 60: y3 = 60
    Ret1 = CreateRoundRectRgn(x1, y1, x2, y2, x3, y3)
    Ret2 = SetWindowRgn(Me.hWnd, Ret1, True)
End Sub
Sub Rettangolare()
    Dim x1 As Long, y1 As Long
    Dim x2 As Long, y2 As Long
    Dim x3 As Long, y3 As Long
    Dim Ret1 As Long, Ret2 As Long
    x1 = 0: y1 = 0
    x2 = Me.Width / Screen.TwipsPerPixelX
    y2 = Me.Height / Screen.TwipsPerPixelY
'    x3 = 60: y3 = 60
    Ret1 = CreateRoundRectRgn(x1, y1, x2, y2, x3, y3)
    Ret2 = SetWindowRgn(Me.hWnd, Ret1, True)
End Sub
Sub Elliptic()
    Dim x1 As Long, y1 As Long
    Dim x2 As Long, y2 As Long
    Dim Ret1 As Long, Ret2 As Long
    x1 = 0
    y1 = 0
    x2 = Me.Width / Screen.TwipsPerPixelX
    y2 = Me.Height / Screen.TwipsPerPixelY
    Ret1 = CreateEllipticRgn(x1, y1, x2, y2)
    Ret2 = SetWindowRgn(Me.hWnd, Ret1, True)
End Sub
Sub AScudo()
    Dim w As Long, h As Long
    Dim Ret1 As Long, Ret2 As Long
' w e h sono le dimensioni della finestra in pixels
    w = Me.Width / Screen.TwipsPerPixelX
    h = Me.Height / Screen.TwipsPerPixelY
' carico tutti i vertici in cui il bordo deve variare
    ArPT(0).x = 0
    ArPT(0).y = 0
    ArPT(1).x = w / 2
    ArPT(1).y = 30
    ArPT(2).x = w
    ArPT(2).y = 0
    ArPT(3).x = w
    ArPT(3).y = h / 2
    ArPT(4).x = (w / 2) + (w / 3)
    ArPT(4).y = (h / 2) + (h / 3)
    ArPT(5).x = w / 2
    ArPT(5).y = h
    ArPT(6).x = (w / 2) - (w / 3)
    ArPT(6).y = (h / 2) + (h / 3)
    ArPT(7).x = 0
    ArPT(7).y = h / 2
' Passo la matrice alla funzione indicandogli
' il primo elemento (ArPT(0) e il numero di vertici
' da considerare (8)
    Ret1 = CreatePolygonRgn(ArPT(0), 8, 0&)
    Ret2 = SetWindowRgn(Me.hWnd, Ret1, True)
End Sub
ELENCOPAROLECHIAVE
RESIZE FORM
API
FORM
NOMEREDATTORE
Fabio Guerrazzi
DATASTESURA
04/10/1998
-----------------------------------
Ciao
---
--
-
Maurizio Santaniello
MIX
170 links a siti VB
http://space.tin.it/computer/gaais/
http://web.tiscalinet.it/VBLINKS/
-
--
---
Curatore della "zona links" de:
Il sito comune di it.comp.lang.visual-basic
http://www.murialdo.it/it_lang_vb/

avevo già addocchiato il codice =)
il fatto è che preferivo non dover usare un form per avereun unica classe
con cui gestire il tutto =)
grazie comunque del codice =)