Newsgroup: it.comp.lang.visual-basic
Titolo: SubClassing...!

Buongiorno.
Sto cercando di SubClassare una Form in modo da renderla
bloccata non Movibile, per capirci.
Tralasciando tutto il sistema di subclassare, ho intercettato il messaggio
   If uMessage = WM_SYSCOMMAND And wParam = 61458 Then
      MsgBox "Non si muove" & wParam
   End If
Il parametro che vedete come wParam è relativo al Move.....!
Tali parametri vengono riconosciuti e mi esce il MSGBOX, quindi
davoper socontato fosse tutto OK.
Se non chè mi si attiva il DRAG sulla Form e rimanendo appiccicata al
Mouse si sposta regolarmente.
Ho pensato di copiare in Memoria le coordinate di Form con CopyMemory
prima di intercettare WM_SYSCOMMAND e una volta intercettato
riaggiornare la Form con le VECCHIE coordinate, in teoria dovrebbe
riposizionandola sempre allo stesso posto darmi la senszione che non si
muove...!
Ho sbagliato qualcosa, oppure c'è un metodo + pratico per farlo......!
Saluti e Buon WeekEnd.
--
@Alex


 Posta il codice della winproc che usi per il subclassing
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:213Z156Z54Z138Y...@usenet.libero.it...

Vediamo se può essere sufficiente....:
Function fWndProcTray(ByVal hWnd As Long, _
                                       ByVal uMessage As Long, _
                                       ByVal wParam As Long, _
                                       ByVal lParam As Long) _
                                       As Long
   On Error Resume Next
     If uMessage = WM_SYSCOMMAND And wParam = 61458 Then
      MsgBox "Non si muove" & wParam
     End If
   'return the messages back
   fWndProcTray = apiCallWindowProc( _
                                       ByVal lpPrevWndProc, _
                                       ByVal hWnd, _
                                       ByVal uMessage, _
                                       ByVal wParam, _
                                       ByVal lParam)
End Function
Ciao GRazie.
@Alex.


 Da quello che so io se vuoi in pratica "mangiarti" il messaggio devi
scrivere
      If uMessage = WM_SYSCOMMAND And wParam = 61458 Then
         fWndProcTray = 0
         Exit Function
      End If
 Perchè altrimenti il messaggio viene cmq eseguito dalla windowPorc originale
e non ottieni l'effetto voluto.
Prova e fai sapere


 
In effetti ho scoperto l'arcano...!
In realtà il Ritorno alla Procedura originale deve essere effettuato
solo se non soddisfo le condizioni, io erroneamente l'ho inserito alla
fine Function, quindi realmente mi veniva deviata sulla mia
procedura, ma in coda veniva ripresa l'originale.
Grazie.
@Alex.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

bloccata non Movibile, per capirci.
Moveable = False
-- 
ciao, hal


  Hal, più avanti suggerisce la soluzione senza subclassing.


 ha scritto nel messaggio
news:rmn9ivcoqv9l4mdls...@4ax.com...

In parte me lo merito.....!
Ma solo perchè non ho specificato tutto.
Non devo Subclassare nè VB nè AccessXP, ma
il buon vecchio Access97, che non dispone della
comodissima proprietà Movable, e ad onor del vero nemmeno
della Function AddressOf.......!!!!
Grazie in ogni caso, la prossima volta cercherò di prevenire
fraintendimenti.

   Ciao
In parte me lo merito.....!


della Function AddressOf.......!!!!
it.comp.appl.access
-- 
ciao, hal

 ha scritto nel messaggio
news:aq0bivk9iml6as8vr...@4ax.com...

Si lo so, ma il problema che in ogni caso ho risolto era più
di VB che di applicativo Database, quindi ho preferito
rivolgermi quì visto che il codice non ho problemi a leggerlo
e modificarlo, si trattava di un'indicazione banale......!
Grazie ugualmente.
@Alex.