Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [VB6] "ancorare" un form dentro un altro

    Ciao a tutti,

    ho un problema che spero di riuscire a spiegarvi:

    ho 2 form, entrambi senza bordi e vorrei "ancorarli" l'uno nell'altro nel senso che se abbasso il form (chiamiamolo) principale si abbassa anche il secondo, se lo ingrandisco lo fa anche l'altro etc etc.

    Pensavo di risolvere il tutto creando un form MDI ma non riesco a togliergli il bordo quindi non va bene...

    Come posso fare? esiste una proprietà specifica?

    Ciao grazie.

  2. #2
    chiedo sempre l'impossibile o non mi sono spiegato bene?

  3. #3
    Utente di HTML.it L'avatar di naki
    Registrato dal
    Feb 2009
    Messaggi
    52
    ciao roma
    ma tu hai questi form aperto nel desktop distinti e separati o sono attaccati ??

  4. #4
    Ciao naki,
    si i form vengo aperti sul desktop, devono essere delle stesse dimensioni e, per farti capire, se massimizzo il principale si dive massimizzare anche l'altro, se lo abbasso idem etc etc..

    ciao grazie.



    p.s. se non sbaglio (lo dico perchè non li ho mai usati) dovrebbe essere la stessa cosa di usare un form mdi e uno child, ma il form mdi ha il bordo e io ho bisogno di 2 form senza bordi).

  5. #5
    Utente di HTML.it L'avatar di naki
    Registrato dal
    Feb 2009
    Messaggi
    52
    ok allora usa l'evento resize

    private sub form_resize()
    form2.width=me.width : form2.height=me.height
    form2.top=me.top : form2.left=me.left
    end sub

    stessa cosa nell'altro form

    private sub form_resize()
    form1.width=me.width : form1.height=me.height
    form1.top=me.top : form1.left=me.left
    end sub

    aggiungi una costante se vuoi distinguere i form aperti form1.left=me.left+1000 per esempio
    spero di esserti stato d'aiuto

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    759
    Originariamente inviato da naki
    ok allora usa l'evento resize
    L'evento resize non si attiva in caso di spostamento del form, ma solo in caso di ridimensionamento.
    Se i due form hanno (o devono avere) dimensioni e posizionamento identici, quello sottostante ovviamente non sarà mai visibile, salvo improbabili trasparenze; non si capisce quindi lo scopo di questa richiesta. Forse se roma77roma ci dà qualche indicazione sullo scopo, potrebbero venire in mente soluzioni alternative.

  7. #7
    grazie Naki e grazie Grumpy,

    in effetti il solo resize non basta, il form deve anche seguire il principale negli spostamenti....

    vi spiego a cosa mi serve:

    sul form principale ho una picturebox dove mando dei file jpg, il form secondario è un form a cui posso modificare la trasparenza da invisibile a nero (in pratica lo uso per abbassare la luminosità delle immagini del primo form).

    Il tutto funziona abbastanza bene ma non è perfetto perchè a volte capita che se faccio qualcosa sul desktop il secondo form (quello trasparente) va in secondo piano con tutto che prima di mandare la jpg a video gli setto il primo piano. Non so perchè mi fa questo ma quello che ho chiesto qui è un tentativo per vedere se risolvo il problema.

    ciao e grazie ancora.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    759
    Originariamente inviato da roma77roma
    ... il form secondario è un form a cui posso modificare la trasparenza ...
    Come temevo .
    Credo che per ottenere "l'effetto speciale" che desideri esistano altri metodi (di cui però non ho conoscenza diretta). Se comunque vuoi percorrere la strada che hai in mente, cioè quella di intercettare lo spostamento di un form, puoi agire in due modi:

    A (più semplice): usare un timer, con intervallo piuttosto breve, che verifica se variano le proprietà Top e Left.

    B (più sofisticata): usare cinque o sei API e ricorrere alla tecnica del subclassing per intercettare il messaggio WM_MOVE.


  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sì, è necessario il subclassing.

    Guarda questo progetto
    FormPair , 12-05-2005
    Force a toolwindow to follow a main form as its moved around the screen.

    lo trovi qui:
    http://vb.mvps.org/samples/


  10. #10
    Utente di HTML.it L'avatar di naki
    Registrato dal
    Feb 2009
    Messaggi
    52
    comunque vedete che il resize quando carichi il form o si riattiva per qualche strano caso si verifica, comunque potresti usare che quando ottiene il focus il form controlla top e left


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.