Telefonino.net network
 
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. NEI PREFERITI .:: | RSS Forum | RSS News | NEWS web | NEWS software |
| PUBBLICITA' | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | CERCA nel FORUM » |

Torna indietro   WinTricks Forum > Software > Programmazione

Notices

Rispondi
 
Strumenti discussione
Vecchio 06-11-2002, 13.28.19   #1
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
...una bella sfida !

Scusate ma il mio problema è:
Come faccio in VB (mi sta bene anche in Delphi o Visual C++) ad impedire che un form, durante il trascinamento, possa essere spostato al di fuori dei limiti dello schermo ?


Chi mi da una mano ?
Grazie a chiunque voglia intervenire.

Ps:Bravo Neddi.
LoryOne non è collegato   Rispondi citando
Vecchio 16-11-2002, 21.18.57   #2
P8257 WebMaster
Gold Member
 
Registrato: 07-01-2002
Loc.: Milano
Messaggi: 2.863
P8257 WebMaster promette bene
La form può essere spostata solo dall'angolo destro in poi e nella parte inferiore dello schermo.

Hai provato a utilizzare dinamicamente le proprietà di posizionamento?

Bye
P8257 WebMaster non è collegato   Rispondi citando
Vecchio 17-11-2002, 16.15.44   #3
LoryOne
Gold Member
WT Expert
 
Registrato: 09-01-2002
Loc.: None of your business
Messaggi: 5.505
LoryOne è un gioiello raroLoryOne è un gioiello raroLoryOne è un gioiello raro
Ti ringrazio per la risposta.
A dire il vero ci avevo gia pensato alle proprietà di posizionamento dinamiche del form e avevo pensato anche a come risolvere il problema (di seguito lo spiegerò) ma come al solito mi tocca ricorrere alle API...Già ma quali ?

Per prima cosa, poichè non voglio che il form possa essere spostato fuori dei limiti dello schermo ho bisogno di conoscere quali sono questi limiti.
Cio significa conoscere le coordinate x,y del vertice in alto a destra dello schermo e le coordinate X,Y in basso a sinistra dello schermo.
Le prime due sono senz'altro 0,0 mentre per le altre due si può far riferimento o all'oggetto Screen di VB o alle API.
Personalmente ho preferito le API e precisamente GetWindowsDesktop e GetWindowsRECT
Ricordimaoci che tutto ciò non significa altro che conoscere qual' è la risoluzione video in uso al momento.

Analogamente ho bisogno di conoscere le stesse coordinate per quanto riguarda la form in questione e qui basta GetWindowsRECT

Fin qui niente di strano ma da qui in poi le cose si fanno più complesse.
Mi spiego meglio:
Per poter verificare se in qualsiasi momento, durante lo spostamento del form, quest'ultimo si trova all'interno dell'area (RECT) dello schermo, ho bisogno di conoscere "istantaneamente" qual'è il valore delle coordinate x,y e X,Y del form in funzione del suo spostamento.

La cosa sarebbe facile se VB mi desse la possibilità di monitorizzare tali coordinate al verificarsi dell' evento MOVE del form ma sfortunatamente mamma Microsoft (tristemente conosciuta da qualcuno come Microsozz) non ha contemplato tale evento nel suo glorioso Visual Basic 5.0 Professional Edition.

Mi resta, dunque, una sola possibilità e cioè il subclassing.

Una volta aggiunta la funzione di subclassing nel mio progetto, non mi resta che gestire l'evento adeguato (WM_MOVE oppure WM_MOVING boh, lo andrò a scovare anche se so che da come valore numerico 36 in decimale).

Ok, adesso le cose da qui in poi si fanno più semplici.
A questo punto ho bisogno di una funzione che mi ritorni un valore booleano qualora le coordinate x,y ricadessero all'interno dell'area dello schermo.
Anche qui vengono in aiuto le API con la funzione PtInRECT

In ultimo, metto in AND i valori di ritorno delle funzioni richiamate per le coordinate x,y, e X,Y e se il risultato è false, a quel punto richiamo la funzione mouse_event per simulare il rilascio del pulsante del mouse.

Così facendo, il form rimarrebbe li dov'è in eterno, quindi sarebbe mia cura spostarlo in modo da renderlo completamente visibile dopo la chiamata alla funzione mouse_event

Ecco, io ho pensato di risolvere il problema così.
Tu hai una soluzione migliore ? (con migliore intendo più semplice)
Attendo lumi a riguardo.
LoryOne non è collegato   Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is ON
Gli smilies sono ON
[IMG] è ON
Il codice HTML è OFF

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
[Linux] Distro "Entry-Level": LA SFIDA juggler Linux e altri Sistemi Operativi 6 04-09-2007 17.58.33
Parole in musica gemma Chiacchiere in libertà 415 03-06-2007 04.24.48
bella gif x avatar... cippico Chiacchiere in libertà 15 20-02-2006 12.54.45
Canzone del momento [5] Doomboy Chiacchiere in libertà 2008 03-02-2006 01.45.40
Buonanotte [3 ] Billow Chiacchiere in libertà 1931 27-02-2005 10.41.33

Orario GMT +2. Ora sono le: 12.04.02.


E' vietata la riproduzione, anche solo in parte, di contenuti e grafica.
Copyright © 1999-2017 Edizioni Master S.p.A. p.iva: 02105820787 • Tutti i diritti sono riservati
L'editore NON si assume nessuna responsabilità dei contenuti pubblicati sul forum in quanto redatti direttamente dagli utenti.
Questi ultimi sono responsabili dei contenuti da loro riportati nelle discussioni del forum
Powered by vBulletin - 2010 Copyright © Jelsoft Enterprises Limited.