Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Evento click sullo screen
Forum - Visual Basic 6 - Evento click sullo screen - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
rossiemme (Normal User)
Rookie


Messaggi: 24
Iscritto: 18/06/2017

Segnala al moderatore
Postato alle 23:19
Lunedì, 12/11/2018


rossiemme ha allegato un file: vb.net.JPG (19390 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
rossiemme (Normal User)
Rookie


Messaggi: 24
Iscritto: 18/06/2017

Segnala al moderatore
Postato alle 23:20
Lunedì, 12/11/2018
questo programma cosa è esattamente? l'ho scaricato come vb.net dal sito microsoft.. pensavo fosse un editor completo


rossiemme ha allegato un file: vb.net.JPG (19390 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 0:45
Martedì, 13/11/2018
Quello è Visual Studio Code, il nuovo editor opensource di Microsoft. Lo uso da pochissimo, ma se non ho capito bene l'idea dietro è molto diversa da Visual studio "enterprise". VScode dovrebbe essere pensato a moduli, tu di base scarichi l'editor che fa solo da editor, puoi impostarlo per interfacciarsi con strumenti di compilazione e debug ma devono essere procurati dall'utente. Oppure puoi affidarti alla gallery di estensioni integrata nell'editor dove puoi trovare dei pacchetti gia pronti che comprendono anche debugger e compiler. Idealmente VScode è adattabile a qualsiasi linguaggio, sia per l'intellisense (come per esempio notepad++) sia per la parte di compilazione e debug.
Quindi per quello che so non basta per compilare VB.net. Leggendo sul sito microsoft è ancora presente la versione community di VS, questa invece dovrebbe comprendere (se non è cambiato nulla negli ultimi anni) anche compilatore e debbuger per VB.net ed è gratis, quindi se vuoi evitare sbattimenti io ti consiglierei di iniziare da questa.
https://visualstudio.microsoft.com/it/vs/features/net-devel ...

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 10:27
Martedì, 13/11/2018
@rossiemme ... il timer è necessario per eseguire l'API. Il VB6 non gestisce eventi dello schermo quindi è impossibile realizzarlo diversamente. E' un vecchio linguaggio con dei limiti.

Visual Studio Community Edition lo scarichi da qui

https://visualstudio.microsoft.com/it/vs/community/

Ma anche VB.NET non prevede un evento click su desktop. Puoi utilizzare un hook del mouse per rilevare il click, vedi questo documento

https://support.microsoft.com/it-it/help/319524/how-to-set- ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
rossiemme (Normal User)
Rookie


Messaggi: 24
Iscritto: 18/06/2017

Segnala al moderatore
Postato alle 7:25
Mercoledì, 14/11/2018
grazie a tutti gli amici che mi hanno risposto, vorrei comunque dare una spiegazione di come è nata questa esigenza di rilevare un Click sullo Screen. In realtà mi basta sul Form, ma questo non reagisce quando è coperto da controlli.

E' sempre stato un mio pallino creare dei controlli da codice che rispondessero agli eventi, ma sfortunatamente ciò non avviene per gli Array di controlli, quindi pensavo di coprire tutti i controlli creati da codice con una Label trasparente per rilevare l'evento click, poi dalla posizione del mouse avrei rilevato quale controllo sottostante fosse corrispondente, ma sfortunatamente  la Label non copre i controlli, e come essa nemmeno la Image.. mentre la Frame copre essa non può essere resa trasparente.. quindi non ci sono riuscito.
Posto qui di seguito il codice relativo e l'immagine di ciò che crea

Codice sorgente - presumibilmente VB.NET

  1. Private WithEvents mEt As Label
  2. Private Pic() As PictureBox
  3.  
  4.  
  5. Private Sub SubCreatePic()
  6.    
  7.     Dim k As Long
  8.    
  9.     If mFrm Is Nothing Then Exit Sub
  10.    
  11.     ReDim Pic(5)
  12.     For k = 0 To 5
  13.         Set Pic(k) = mFrm.Controls.Add("VB.pictureBox", "pic" & k)
  14.         Set Pic(k).container = mFrm
  15.         Pic(k).Enabled = True
  16.         Pic(k).Visible = True
  17.         Pic(k).Appearance = 0
  18.         Pic(k).AutoRedraw = True
  19.         Pic(k).BackColor = &H8000000E
  20.         Pic(k).ForeColor = vbBlack
  21.         Pic(k).ScaleMode = vbPixels
  22.         Pic(k).Appearance = 1
  23.         Pic(k).Width = 16
  24.         Pic(k).Height = 16
  25.         Pic(k).Left = 20 * k
  26.    
  27.     Next k
  28.    
  29.     Set mEt = mFrm.Controls.Add("VB.label", "lbl")
  30.     Set mEt.container = mFrm
  31.     mEt.Visible = True
  32.     mEt.Height = 40
  33.     mEt.Width = 150
  34.     mEt.Visible = True
  35.     mEt.Enabled = True
  36.     mEt.Caption = Chr(13) & "questa label non copre i controlli"







rossiemme ha allegato un file: esempio.JPG (18558 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
rossiemme (Normal User)
Rookie


Messaggi: 24
Iscritto: 18/06/2017

Segnala al moderatore
Postato alle 7:33
Mercoledì, 14/11/2018
Per concludere il mio ragionamento, dopo aver escluso di utilizzare il click sul Form, su una Label o su una Image (perché nessuno di essi reagisce quando è coperto da controlli) ho pensato allora a un evento Click sullo Screen da gestire poi mediante coordinate X,Y del Mouse, ma sembra che nemmeno questo si possa fare senza utilizzare i metodi subclassing.

A questo punto, prima di rinunciare vorrei sapere qualcosa in più sulla tecnica subclassing

PM Quote
Avatar
rossiemme (Normal User)
Rookie


Messaggi: 24
Iscritto: 18/06/2017

Segnala al moderatore
Postato alle 7:48
Mercoledì, 14/11/2018
se guardate l'immagine e vedete dei segni di spinta non fatevi ingannare, non sono il frutto di eventi Click ma del codice seguente:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub SettaPic(v() As Boolean)
  2.     Dim n As Long, i As Long, j As Long
  3.     Dim a As Long, b As Long, c As Long, d As Long, e As Long 'parametri del 'visto'
  4.    
  5.     a = 3 'profondità
  6.     b = 2 'shift in avanti
  7.     c = 4 'spessore
  8.     d = 2 'extracorsa
  9.     e = 0 'shift in basso
  10.    
  11.     For n = 0 To 5
  12.         If v(n) = True Then
  13.             For i = b To a + b
  14.                 For j = 1 + e To c + e
  15.                     SetPixel Pic(n).hdc, i, j + i, vbBlack
  16.                 Next j
  17.             Next i
  18.             For i = a + b To 2 * a + b + d
  19.                 For j = a + 1 + e To a + c + e
  20.                     SetPixel Pic(n).hdc, i, j - i + a + b * 2, vbBlack
  21.                 Next j
  22.             Next i
  23.         Else
  24.             Pic(n).Cls
  25.         End If
  26.     Next n
  27.    
  28. End Sub


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:54
Mercoledì, 14/11/2018
Sul subclassing esistono tonnellate di informazioni, esempi, articoli e altro su Internet ... per VB6 e per VB.NET ...

Dai un'occhiata in giro e torna con qualche prova ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo