Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Ciao Carlo, quello che ti consiglio e di usare le api per altre cose.
Non è un rimprovero o un invito a non usarle sia chiaro, puoi anche utilizzare le api per la grafica.
Ma ne vale la pena quando il .net gestisce già tutto il modo ordinato?
Qui trovi tutte le api con esempi da utilizzare in vb.net o C#.
troverai anche http://www.pinvoke.net/default.aspx/gdi32.LineTo
L'unico problema che avrai ad usare le winapi, è quello di dover cmq rimanere legato a windows.
mentre le gdi del .net sono compatibili con le gdi+ del mono è quindi cross-platform.
Anche perché le le gdi del net sono molto ampie e si possono fare veramente tantissime cose.
Sfruttando la potenzialità del Lockbit triplicando la velocità di renderizzazione di un'immagine.
o ad esempio il doppio buffer.
Altre esempio ancora l'unsafe + lockbit in unmanaged mode.
come un esempio trovato sulla rete
Esempio C# con codice non gestito e puntatori
Codice sorgente - presumibilmente VB.NET
public unsafe Image ThresholdUA(float thresh)
{
Bitmap b =new Bitmap(_image);//note this has several overloads, including a path to an image
Tornando un'attimo al tuo topic, non vedo da nessuna parte che al metodo LineTo
precedentemente hai impostato un colore.
Di default è nero. ma non puoi basarti sul ForeColor del form.
Il ForeColor del form è relativo al colore di una label che gli andrà collocata sopra.
Se non sbaglio dovresti impostare prima il colore della penna
Codice sorgente - presumibilmente VB.NET
<DllImport("gdi32.dll")> _
PrivateSharedFunction CreatePen(fnPenStyle As PenStyle, nWidth AsInteger, crColor As UInteger)As IntPtr
EndFunction
Ultima modifica effettuata da Thejuster il 26/02/2018 alle 16:06
Il codice che mi hai consigliato di vedere, mi ha fatto capire che devo comunicare all'hdc in uso quale "penna" usare.
Purtroppo per me non sono ancora in grado di convertire il C nella giusta sintassi del VB.net, mi puoi aiutare?
Il codice in C# che hai postato è molto interessante, l'ho messo da parte per un futuro approfondimento.
grazie.
Ultima modifica effettuata da Carlo il 26/02/2018 alle 16:56
in programmazione tutto è permesso
()
Newbie
Messaggi: Iscritto:
Postato alle 16:31
Lunedì, 26/02/2018
Testo quotato
Postato originariamente da Carlo:
l'API gdi32
gdi32 è una dll non una api
Anch'io sono poco propenso ad usare Api con vb.net.
Vb6 era un'altra storia perché molto limitato e tanto si risolveva con le Api.
Vb.net e c# non ne hanno bisogno se non in casi particolari.
'Se non sbaglio dovresti impostare prima il colore della penna'
Si ho settato il colore della penna con:
Dim pen As New Pen(Color.Blue)
ed ora anche con la tua funzione, ma siccome non sortiva nessun effetto non l'havevo inserita nel codice.
Il problema è che la penna che deve essere usata da gdi32 deve appartenere allo stesso hdc, come credo di aver capito dal codice C nelle righe da me boldate:
David Ross ha scritto un' intera Classe in VB.net per gestire completamente la GDI32.
Fa quello che cercavo io e molto di più.
Certo per un uso "normale" di VB.net è inutile, ma per studiare e per chi è curioso è una lettura interessante.