Newsgroup: it.comp.lang.visual-basic
Titolo: Parent.......i serpenti

mago.poof()
Ho un form MDI e dentro inserisco dei form normali con la funzione
SetParent.....
Il problema è che non riesco a definirne la posizione  all'interno del MDI.
Ad esempio se ho tre form io voglio che nel MDI si abbia:
frmMDI.Width=screen.width
frmMDI.Heigth=screen.Heigth
frmWND1.Top=0
frmWND1.Left=0
frmWND1.Width=frmMDI.ScaleWidth
frmWND1.Heigth=2000
frmWND2.Top=frmWND1.Heigth
frmWND2.Left=0
frmWND2.Width=frmMDI.ScaleWidth/2
frmWND2.Heigth=frmMDI.ScaleHeigth-frmWND1.Heigth
frmWND3.Top=frmWND1.Heigth
frmWND3.Left=frmMDI.ScaleWidth/2
frmWND3.Width=frmMDI.ScaleWidth/2
frmWND3.Heigth=frmMDI.ScaleHeigth-frmWND1.Heigth
In pratica qulacosa del genere:
__________________________________________________
|
|
|                                              FORM1
|
|_________________________________________________ .|
|                                                     |
|
|                                                     |
|
|                                                     |
|
|                                                     |
|
|              FORM2                         |                  FORM3
|
|                                                     |
|
|                                                     |
|
|                                                     |
|
|                                                     |
                         |
|                                                     |
|
|                                                     |
|
|_______________________.|__________________________|
Quello che accade è che ognuna delle tre finestre va dove vuole ...l'unica
cosa che riesco a settare sono ampiezza ed altezza.
Qualcuno ha qualche consiglio???
mago.poof()

 mago.poof()
Questa roba sta' ben nascosta nell'MSDN.
Ora so che si può fare con due form normali di cui una viene resa parent.
Con un MDI non sono sicuro.
Devi giocare con la SetWindowLong() in questo modo:
    wl = GetWindowLong(Me.hWnd, GWL_STYLE)
    ' la rendo child
    Call SetWindowLong(Me.hWnd, GWL_STYLE, wl or WS_CHILD)
    ' delle 2 seguenti non sono per niente sicuro
    ' ma MSDN dice che una win. popup non può essere child
    wl = GetWindowLong(Me.hWnd, GWL_STYLE)
    Call SetWindowLong(Me.hwnd, GWL_STYLE, wl and not WS_POPUP)
    Call SetParent(Me.hWnd, Container.hWnd)
Prova a giocarci un po' e leggi tutto quello che ti capita sottomano della
SetWindowLong()
Ciao

 ha scritto
|
| mago.poof()
|
| Ho un form MDI e dentro inserisco dei form normali con la funzione
| SetParent.....
| Il problema è che non riesco a definirne la posizione  all'interno del MDI.
| Ad esempio se ho tre form io voglio che nel MDI si abbia:
[...]
| Quello che accade è che ognuna delle tre finestre va dove vuole ...l'unica
| cosa che riesco a settare sono ampiezza ed altezza.
| Qualcuno ha qualche consiglio???
Sei sicuro di voler usare dei form non child come se lo fossero? A che scopo cercare di farli child
manualmente se poi l'uso che ne fai e' di form child?
Eventualmente, hai già provato ad usare le proprietà scaleleft/top dell'MDI e left/top sempre
dell'MDI?

 dell'MDI?
 mago.poof()
già provato...
 mago.poof()

 ha scritto
| Jabba The Hutt <Jabba....@Alderaan.SW> wrote in message
| > Sei sicuro di voler usare dei form non child come se lo fossero? A che
| scopo cercare di farli child
| > manualmente se poi l'uso che ne fai e' di form child?
|
| alcune volte lo sono altre no........(fico vero!!!!)
Ehm, mi hai incuriosito... sono troppo indiscreto se ti chiedo a cosa servono e come li usi?

mago.cut
mago.poof()
ho creato una classe che istanzia dei form e li utilizzo sia come child che
come normal.....
ad esempio:
un software per cartelle mediche in cui i dati da inserire sono gli stessi
1) per un MDI  ( apre più cartelle e fa paragoni - come se fosse un editor
ecc..-)
2) come singolo form per inserimento dati paziente ecc....
mago.poof()