Smart device - bloccare form

venerdì 27 luglio 2012 - 18.48
Tag Elenco Tags  .NET 3.5  |  Visual Studio 2008

massimo1965 Profilo | Junior Member

Ciao a Tutti,
esiste un modo per bloccare la form in device win ce 5 ?
Grazie

Vinsent Profilo | Senior Member

>Ciao a Tutti,
>esiste un modo per bloccare la form in device win ce 5 ?
>Grazie
>
Cosa intendi per bloccare?

massimo1965 Profilo | Junior Member

Ciao
praticamente non dare la possibilità di spostarlo.
In vb6 se non mi ricordo male c'era moveable, in NET ho trovato del codice ma non funziona per lo smart device o per lo meno non so come sistemarlo...
http://deghetto.wordpress.com/2008/10/07/46-vbnet-impedire-lo-spostamento-di-un-form/

Grazie

Vinsent Profilo | Senior Member

Link molto interessante...
Ho fatto qualche ricerca per approfondire l' argomento e ho trovato un' esempio:
http://msdn.microsoft.com/it-it/library/microsoft.windowsce.forms.messagewindow.wndproc(v=vs.80).aspx
dove rispetto al link è scritto:
Protected Overrides Sub WndProc(ByRef msg As Microsoft.WindowsCE.Forms.Message) 'ecc,ecc MyBase.WndProc(msg) End Sub

Il "CE" in più ti dice qualcosa?

massimo1965 Profilo | Junior Member

bene....
adesso non posso provarlo ma domani 99 su 100 si...
Il CE dovrebbe essere proprio l'estensione per lo smart device.

Provo e ti faccio sapere.
Grazie comunque.

M

massimo1965 Profilo | Junior Member

Ciao Vincent
vuoi ridere....è più semplice di quanto pensassi...
Allora basta mettere la proprietà WindowsState a Maximized
e poi Width e Height giuste, nel caso di uno Skorpio Datalogic 240; 294 e non sposta neanche a pagarlo...
Ovviamente per un progetto WindowsCE su NET 3.5

L'esempio che mi hai dato funziona per intercettare tutto il resto, in particolare
http://msdn.microsoft.com/it-it/library/microsoft.windowsce.forms.messagewindow

Cosa che ho visto e in parte capito il funzionamento ..

Ci sentiamo
Massimo

Vinsent Profilo | Senior Member

...quante seghe mentali per poi risolvere in modo tanto banale quanto efficace, non ci avrei mai e poi mai pensato....
Per il discorso dei "messaggi" la trovo una cosa molto utile quanto complessa...devo studiarci su...però ho capito più o meno come procedere...
Dal codice preso dal link che hai postato ho tolto tutto è inserito 'Console.WriteLine(m)' e poi ha tentavi trovo ciò su cui lavorare. Ad esempio per evitare l' apertura del menù contestuale quando si fa clic destro sulla barra del form il 'Console.WriteLine(m)' riporta:
msg=0x7b (WM_CONTEXTMENU) hwnd=0x580372 wparam=0x580372 lparam=0x8301aa result=0x0
la parte interessata è "0x7b", il tra parentesi è la descrizione e se si fa una ricerca si trova la pagina a riguardo su MSDN ed in questo caso riporta il codice "0x007B", sono in esadecimale...mentre quelli del link sono "interi", per non sbattersi a convertire basta eliminare "0x", gli 0 iniziali, ed aggiungere &H, quindi diventa "&H7B":
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message) 'Console.WriteLine(m) Dim WM_CONTEXTMENU As Integer = &H7B If (m.Msg = WM_CONTEXTMENU) Then Return End If MyBase.WndProc(m) End Sub

Giusto per curiosità...se scrivi il codice sopra in una form con il solo 'Console.WriteLine(m)' l' ide scrive qualcosa nell' output?

massimo1965 Profilo | Junior Member

Vincent
a parte che il codice dell'esempio nello smart device ho dovuto ritorccarlo un po', forse per mia ignoranza che per funzionamento, ho verificato che effettivamente funziona e vengono passate le coordinate sulla barra del titolo.

Se vuoi appena posso, adesso lo smart device è dal cliente, posso provare a testare la tua parte di codice.

Ciao
M

Vinsent Profilo | Senior Member

no no...non star lì a perdere tempo...
ciao

Vincenzo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5