eddy1973 ha scritto:
Si certo ma il menu viene visualizzato soltanto con la pressione del tasto destro e pertanto cercavo il modo per ottenere lo stesso risultato con la pressione di altro tasto o con l'introduzione dell'evento mousemove.
Può essere io sia poco chiaro... oppure no...
@Alex ha scritto:
Giuro che è la prima volta che con Access sento una roba simile...!!!!
I Popup con Access si costruiscono con il VBA con poche righe di codice, al massimo serve 1 Chiamata API per recuperare la posizione del Cursore in modo da passarla al metodo ShowPopup... ma solo se lo devi pilotare da Comando.
Che tradotto:
https://docs.microsoft.com/en-us/office/vba/api/office.commandbar.showpopup
Quindi se leggi la guida in merito, puoi usare ShowPopup da codice per invocare la CommandBar, metodo esposto dalla Classe Oggetto Commandbar specifica, devi passare X e Y per farlo apparire nel posto giusto, quindi, come detto nel 3D originale usi l'API GetCursorPos, che trovi documentata quì:
https://support.microsoft.com/en-us/help/152969/visual-basic-procedure-to-get-set-cursor-position
Chiaramente se non devi avere a riferimento i Pointer, X e Y le devi passare in base alla posizione che devi usare...!
Le posizioni X/Y ricavate da GetCursorPos sono relative allo Schermo, devi scalarle alla Maschera su cui stai Puntando, sempre usando una chiamata API ScreenToClient
Se invece devi fare il contrario, ovvero pilotare X/Y da codice, devi sapere dove far apparire il Menù e convertire con ClientToScreen le coordinate in Pixels relativi...
Esempio se prendi a riferimento la mezzeria della Maschera su cui far apparire il Popup ricavi la mezzeria IN PIXEL e non in TWIPS e le passi a ClientToScreen affinchè vengano scalate allo Schermo...
Quì trovi come adeguare le chiamate 32Bit a 64Bit.
https://codekabinett.com/rdumps.php?Lang=2&targetDoc=windows-api-declaration-vba-64-bit