2009-12-09 19 views
5

Me gustaría que alguien dé un ejemplo de trabajo de SetWindowPos sobre cómo hacer que una ventana sea "superior" (estar en la parte superior y permanecer allí) usando C/C++/C# . ¡Gracias por adelantado!C/C++/C# SetWindowPos: Ventana encima de otras

+2

¿Qué problema hay con el ejemplo de MSDN? – Naveen

+0

de hecho, la respuesta está en frente de tu nariz :) – Pieter888

+0

El método exacto será bastante diferente entre C/C++ y C#, por lo que probablemente deberías especificar cuál de los tres estás planeando usar. –

Respuesta

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

No entiendo esto, ¿cómo puedo decir qué aplicación estar arriba? –

+1

El parámetro hWnd especifica la ventana que se debe mover a la parte superior. –

1

C#

this.TopMost = true; 
+0

No sé sobre C y C++ aunque ... – Pieter888

+0

Esto no ayudará con otras ventanas, excepto con el formulario de solicitud. –

1

me encontré con este problema hace un tiempo, e hizo la pregunta here. Los detalles reales de mi problema probablemente no sean los mismos que los tuyos, pero por las dudas, resumiré mi pregunta y la respuesta.

Necesitaba mantener una aplicación particular (WPF) en primer lugar todo el tiempo que se estaba ejecutando para intentar denegar el acceso a otro software en la máquina. Terminé ejecutando un temporizador cada 1/4 de segundo que realiza una llamada al método SetForegroundWindow(IntPtr hWnd) de user32.dll para captar la atención de la aplicación, junto con la configuración TopMost = true en mi ventana.

HTH

Cuestiones relacionadas