Msgbox centrata alla maschera e non al video

martedì 03 aprile 2007 - 12.36

yamaarasi Profilo | Newbie

Ciao!
Vorrei fare un msgbox nella mia maschera ma che fosse centrato alla maschera e non al video...
la mia maschera è abbastanza piccolina e il video è da 20 pollici...se sposto la maschera del mio programma in alto a sinistra e clicco un pulsante che mi restituisce un msgbox quest'ultimo mi viene mostrato fuori dalla maschera al centro dello schermo...
come posso fare per far si che risulti visualizzato al centro della maschera?
Grazie...

munissor Profilo | Senior Member

dal Framework sicuramente non si può fare.

Usando P/Invoke devi fare tutto da te.

Crei una funzione per visualizzare il MessageBox (es ShowMessageBox( string text, string caption))

in cui all'interno

1) imposti un hook nel ciclo dei messaggi del thread corrente usando SetWindowsHookEx

2) visualizzi il message Box tramite MessageBox (nativa! puoi anche provare MessageBox.Show del framework)

3) rilasci l'hook usando UnhookWindowsHookEx


Nella funzione che usi come hook ti verrà notificato un codice HCBT_ACTIVATE e nel wParam trovi l'handle di finestra del MessageBox, a questo punto dovresti essere in grado di muoverlo usando SetWindowsPos.

Attenzione che la procedura non è proprio delle più semplici, usa solo se proprio non puoi farne a meno. Se ci vuoi provare informati sulla platform SDK o su MSDN.

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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5