2009-12-09 20 views
5

Vorrei qualcuno che fornisse un esempio funzionante di SetWindowPos su come rendere una finestra "topmost" (posizionarsi sopra e rimanere lì) usando C/C++/C# . Grazie in anticipo!C/C++/C# SetWindowPos: Finestra sopra altri

+2

Cosa c'è di sbagliato nell'esempio MSDN? – Naveen

+0

infatti, la risposta è davanti al tuo naso :) – Pieter888

+0

Il metodo esatto sarà abbastanza diverso tra C/C++ e C#, quindi dovresti probabilmente specificare quale dei tre hai intenzione di usare. –

risposta

4

C/C++:

// This doesn't size or move the window, just makes it top-most. 
SetWindowPos(hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); 
+0

Non capisco questo, come posso dire quale applicazione deve essere in cima? –

+1

Il parametro hWnd specifica la finestra che deve essere spostata in alto. –

1

C#

this.TopMost = true; 
+0

Non so C e C++ però ... – Pieter888

+0

Questo non è di aiuto per altre finestre tranne il modulo di domanda. –

1

mi sono imbattuto in questo problema qualche tempo fa, e ha fatto la domanda here. I dettagli reali del mio problema non erano probabilmente uguali ai tuoi, ma nel caso, riassumo la mia domanda e la risposta.

Avevo bisogno di mantenere una particolare applicazione (WPF) prima di tutto per tutto il tempo in cui era in esecuzione per tentare di negare l'accesso ad altri software sulla macchina. Ho finito per eseguire un timer ogni 1/4 secondo che effettua una chiamata al metodo SetForegroundWindow(IntPtr hWnd) di user32.dll per catturare l'attenzione sull'app, insieme all'impostazione TopMost = true sulla mia finestra.

HTH

Problemi correlati