Newsgroup: it.comp.appl.access
Titolo: Rendere impotente il puntatore del Mouse sopra una determinata finestra (report)

Salve a tutti.
Sto realizzando un applicativo per la generazione di preventivi per un mio amico falegname.
Questo applicativo è in grado, come è la tendenza di tutti i SW in questo ambito, di stilizzare 
l'immagine dei serramenti.
La mia intenzione era di affiancare alla form di creazione preventivi, un report che visualizzasse 
in tempo reale l'immagine del serramento che l'utente sta andando a comporre.
Sono già arrivato ad un buon punto utilizzando le proprietà del report (Pulsante chiusura>No, 
Pulsanti ingrandimento-riduzione>No, Stile bordo>Dialogo, dimensionabile>No, Spostabile>No ecc...) 
ed il tutto promette bene.
Tuttavia mi rimane che ad un click del mouse sopra il report, mi cambia la zoomata, con la classica 
lente di ingrandimento.
Siccome vorrei che il report si riducesse in questo caso ad un semplice output visivo inerte e 
passivo (insomma, peggio di così non si può), mi chiedevo se c'era qualche API in grado di rendere 
il report in questione a questo stato vegetativo, passandogli l' Hwnd del report stesso.
Grazie a chiunque sarà in grado di darmi una dritta.
-- 
---------------------------
Michele (Giò)
joyl...@alice.it
 

 
joyle...@alice.it
Hai già disabilitato i pulsanti di scelta rapida ovviamente...?
Ti sei accorto che nell'intestazione(la Barra Blu in alto del Report)
hai attivo il ContextMenù con tutte le voci...?
BEne detto questo l'unico modo che io conosco se non funzionan quelli
standard è di SubClassare il Report ed intercettare il WM_CLICK
inviato, e di conseguenza deviarlo....!
Saluti
@Alex

 wrote:
i pulsanti di scelta rapida ovviamente...?
Ti sei accorto che nell'intestazione(la Barra Blu in alto del Report)
hai attivo il ContextMenů con tutte le voci...?
BEne detto questo l'unico modo che io conosco se non funzionan quelli
standard č di SubClassare il Report ed intercettare il WM_CLICK
inviato, e di conseguenza deviarlo....!
Ciao Alex. Guarda, io stavo tentando di adoperare il subclassing (ovviamente devo ancora farlo 
funzionare, mi si pianta, č la prima volta che mi cimento in una cosa del genere), tentando di 
intercettare il WM_LBUTTONDOWN (tasto sinistro giů)
--------------------------------
'Su modulo standard
Public Const GWL_WNDPROC = (-4)
Public Const WM_LBUTTONDOWN = &H201
'dichiarazioni API
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal 
nIndex As Long, _
                                                                    ByVal dwNewLong As Long) As Long
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, 
ByVal hWnd As Long, _
                                                                    ByVal Msg As Long, ByVal wParam 
As Long, ByVal lParam As Long) _
                                                                    As Long
Public IProcOld As Long
-----------------------------
Public Function WindowProc(ByVal hWnd As Long, ByVal uMsg As Long, _
                           ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_LBUTTONDOWN Then
    MsgBox "č stato premuto il tasto sinistro del mouse"
End If
WindowProc = CallWindowProc(IProcOld, hWnd, uMsg, wParam, lParam)      *****mi si pianta qua****
End Function
----------------------------
Poi sul modulo del report:
-----------------------------
Private Sub Report_Close()
SetWindowLong Me.hWnd, GWL_WNDPROC, IProcOld
End Sub
--------------------------
Private Sub Report_Open(Cancel As Integer)
IProcOld = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub
----------------------------
Sto cercando di adattare l'articolo trovato su
http://www.it-lang-vb.net/Documentazione/Articoli/Subclassing.htm
alle mie esigenze, ma mi si pianta sulla riga asteriscata, e mi tocca chiudere Access con il task 
manager.
Forse ho sbagliato direttamente dal principio.
Michele 

 Michele
Scaricati questo che è dedicato ad ACCESS.... l'ho fatto io e forse
per chi usa Access è più comodo:
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=40ù
Dentro trovi dei Demo interessanti, ma soprattutto una Tecnica più
sicura di quella che stai usando tu.
Ricorda sempre che non puoi caricare l'IDE quando testi il
SubClassing, quindi non aprire mai nessun Oggetto in modalità Design,
ma dopo aver fatto modifiche devi chiudere e lanciare di nuovo Access
e testare la modifica.... tutte le volte.
@Alex

[CUT]
Non sò perchè ho incollato male....
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=40
Ora va.
@Alex