Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Evento Paint
venerdì 27 luglio 2007 - 07.56
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
stena
Profilo
| Junior Member
78
messaggi | Data Invio:
ven 27 lug 2007 - 07:56
Mi servirebbe sapere il nome di qualche controllo server grafico che gestisca l'effetto Paint in modo da poter disegnare al suo interno.
grazie
Per maggior chiarezza, lo scopo di questa ricerca è quello di capire se esistono dei componenti/oggetti 'MANAGED' che possano essere inseriti in un sito WEB ASP che notifichino in qualche modo l'evento di rendering.
La necessità è quella di poter accedere all'oggetto che controlla il rendering del componente e di poterlo usare per 'customizzare' il disegno dell'area client del componente stesso.
A questo punto una volta disegnata l'area client del componente, esso dovrebbe trasferire la sua bitmap via HTTP sul browser collegato al sito (così come fanno i controlli di tipo 'Image' i quali leggono un JPEG sul Server e lo trasferiscono sul client)
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
lun 30 lug 2007 - 09:28
>La necessità è quella di poter accedere all'oggetto che controlla
>il rendering del componente e di poterlo usare per 'customizzare'
>il disegno dell'area client del componente stesso.
>A questo punto una volta disegnata l'area client del componente,
>esso dovrebbe trasferire la sua bitmap via HTTP sul browser collegato
>al sito (così come fanno i controlli di tipo 'Image' i quali
>leggono un JPEG sul Server e lo trasferiscono sul client)
La tua spiegazione è molto complessa. Diciamo che tutti i componenti grafici funzionano così. Le cose sono due. O ti compri un componente per creare grafici e quindi specificando le varie proprietà ti crei il grafico che viene inviato via HTTP al client, oppure ti crei un componente tu, e ti gestisci il Paint come vuoi e l'invio dei byte al client. La prima soluzione è la meno economica ma la più rapida, la seconda più economica ma richiede molto tempo, dipende anche dal tipo di grafici che devi fare, perchè finchè ti limiti a barre o linee Ok, ma se devi fare torte 3D o cose simili magari è meglio usare componenti già pronti oppure strumenti di reportistica quali Crystal o Reporting Services.
Sui componenti che producono grafici, freeware o a pagamento trovi un Thread qui:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=16810
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
stena
Profilo
| Junior Member
78
messaggi | Data Invio:
lun 27 ago 2007 - 08:06
Cercherò di essere più chiaro:
ho un applicativo che permette la visualizzazione cartografica di alcune aree stradali.
Tramite la classe Graphics e il suo metodo GetHdc() ottengo l'handle del contesto di periferica associato a tale oggetto Graphics.
Grazie all' handle il client è quindi in grado di disegnare all'interno di tale oggetto.
E' necessario quindi che il controllo fornisca la logica di rendering mediante l'override del metodo OnPaint.
Mentre nella mia applicazione tale ridisegno rimane a livello di client che riceve l'handle intercettando automaticamente il messaggio di windows WM_PAINT; a livello Web dovrebbe essere il server che riceve l'handle ed effettua il disegno per poi rigirarlo al client.
Ad esempio, banalmente:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Pen p = new Pen(Color.Aqua);
Rectangle r = new Rectangle(0, 0, 200, 200);
IntPtr pp = e.Graphics.GetHdc();
// in questo caso mi basta passare il puntatore pp alla dll di cartografia
//.......
}
Qui l'esempio è semplice poichè tramite evento OnPaint ho la classe PaintEventArgs che mi permette di accedere a Graphics.
ovviamente si eseguirebbe un override al metodo paint.
In sintesi l'applicazione web passa alla funzione di ingresso della dll cartografia l'HDC dell'oggetto in cui disegnare.
Cartografia non restituisce nulla, semplicemente disegna nell'oggetto a cui accede tramite l'handle HDC.
ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !