Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - vb6 rendere opaca form figlia di mdiform
Forum - Visual Basic 6 - vb6 rendere opaca form figlia di mdiform

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 13:37
Lunedì, 28/09/2009
Salce come faccio a rendere opaca una form figlia di una mdiform in vb6?
Grazie

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 13:38
Lunedì, 28/09/2009
Ovvero? Spiegati meglio ...

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 14:24
Lunedì, 28/09/2009
mi spiego meglio, con il seguente codice se la form non è figlia di mdiform (mdichild=false) funziona altrimenti no (se mdichild=true)
In sostanza ho bisogno di aprire una form stile trasparente ma in realta' opaca interna alla mdiform

Option Explicit
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long

Private Sub Form_Load()
    Dim Ret As Long
    Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
    Ret = Ret Or WS_EX_LAYERED
    SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
    SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
    SetLayeredWindowAttributes Form1.hWnd, 0, 0, LWA_COLORKEY
End Sub

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:54
Lunedì, 28/09/2009
Perdonami, ma tu pensi che questa parte della tua richiesta

"... una form stile trasparente ma in realta' opaca ..."

sia comprensibile?

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 15:00
Lunedì, 28/09/2009
ma è cos' difficile da capire la mia umile richiesta. Forse mi stai prendendo in giro, se tu fossi un vero programmatore e non come lo sono io solo leggendo il codice postato avresti capito, non voglio fare nessuna polemica ma mi sembra di essere preso in giro.

sai cosà è una form con effetto trasparenza ?????

sai cos'è una form con effetto opacity ????

se non conosci questi termini non rispondere nemmeno, non fare perdere n'è tempo a te stesso, ne a me e nemmono a tutti gli utenti che leggono e postano in questo bellissimo forum.

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:07
Lunedì, 28/09/2009
lol si vede che sei nuovo del forum... comunque neanche io ho ben capito... ho provato il codice che hai postato ma il form mi rimane normale (apparte l'icona in alto a sinistra che è trasparente)... è questo quello che vuoi?

e poi a che scopo? non mi sembra molto utile...:-|

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 15:20
Lunedì, 28/09/2009
proverò a spiegarmi meglio altrimenti grazie comunque per l'interessamento.
Ho un progetto vb6 con una mdiform padre.
Al suo interno apro una form figlia.
Succede poi di avere bisogno di oscurare questa form figlia con un'altra di colore nero che abbia un effetto non di totale trasparenza, ma con effetto opacity in modo tale da oscurare la form sottostante, questo per dare un effetto di oscuramento e non di soprapposizione delle due form.
Il problema stà nel fatto che usando comuni form il tutto funziona, compreso il codice precedentemente postato, ma utilizzando form padre-figlia questo effetto non riesco a ottenerlo. Esiste un sistema per ingannare la mdiform per ottenre lo stesso effetto comunemente chiamato su internet da tutti form opacity ?
Mille grazie, scusate se sono stato arrogante, non lo sono mai ma non riesco a capire come sia difficile capire una cosa così semplice, poi magari complicata nel realizzarsi, non volevo e non voglio offendere nessuno e se successo chiedo umilmente scusa.

PM Quote
Avatar
piter123 (Normal User)
Pro


Messaggi: 145
Iscritto: 21/05/2008

Segnala al moderatore
Postato alle 15:24
Lunedì, 28/09/2009
ecco un esempio con form comuni, ho bisogno di ottenere lo stesso effetto su due form filie all'interno di una mdiform


piter123 ha allegato un file: opacity.zip (1624 bytes)
Clicca qui per scaricare il file
PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 18:50
Lunedì, 28/09/2009
L' "effetto opacity" e' una cosa, una "form opaca" e' un'altra ...

Testo quotato

non riesco a capire come sia difficile capire una cosa così semplice



Probabilmente perche' non ti sei spiegato ...

Testo quotato

non volevo e non voglio offendere nessuno  



E nessuno ti prende in giro ... se ti si chiede di essere piu' chiaro (per giunta dicendoti "Perdonami ma ...) forse potresti rispiegare e basta ...

In ogni caso, nessuno si e' offeso ...

Tornando al tuo problema, mi sa che non puoi proprio ... le child sono create e ridisegnate dal VB in maniera "autonoma" e la SetWindowLong non riesce a settare il flag WS_EX_LAYERED.

Ultima modifica effettuata da theprogrammer il 28/09/2009 alle 18:51
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo