Dudas Sobre WndProc

07/07/2004 - 12:05 por Anonimo | Informe spam
Hola, viendo el foro he visto algo referente a un método
del tipo

protected override void WndProc(ref Message m)

Quisiera saber en qué consiste y qué utilidades tiene.

Por ejemplo, vi algo similar a esto

if ((m.Msg == 0x0201 || m.Msg == 0x0203))


Quería saber si esos valores 0x0201 , 0x0203 son
constantes y si existe alguna referencia con todos los
posibles valores de m.Msg y loq ue significa.

Un saludo a todos.
 

Leer las respuestas

#1 Eduard Tomàs
07/07/2004 - 12:35 | Informe spam
Hola,
El WndProc, o procedimiento de ventana, es el que se
encarga de procesar TODOS los mensajes que windows manda
a una ventana.
Cada vez que se mueve el ratón por encima de la ventana,
o se mueve una ventana, o es necesario que se pinte, o el
usuario pulsa una tecla, o... windows manda un mensaje a
esta ventana para que la ventana realice la tarea
encomendada.
Pot ejemplo, cada vez que Windows necesita que una
ventana se redibuje le manda el mensaje WM_PAINT. El
parámetro Message contiene el mensaje que Windows ha
mandado a la ventana.
Un mensaje (objeto Message) tiene los siguientes datos
principales:
Un código de mensaje (Msg), como p.ej. WM_PAINT
Dos parámetros de 32 bits llamados WParam y LParam
El handle (identificador) de la ventana que recibe el
mensaje (HWnd).

El código que mencionas:
if ((m.Msg == 0x0201 || m.Msg == 0x0203))
está comprobando si el mensaje recibido por la ventana es
el WM_LBUTTONDOWN (0x201) o el WM_LBUTTONDBLCLK (0x203),
es decir si se ha hecho click o doble click con el botón
izquierdo del ratón sobre la ventana.

La relación entre los números y los códigos de los
mensajes se encuentra en el fichero WINBASE.H, que se
distribuye junto a Visual Studio (en concreto forma parte
de los archivos include de C++).

Un saludo,
Edu

Hola, viendo el foro he visto algo referente a un método
del tipo

protected override void WndProc(ref Message m)

Quisiera saber en qué consiste y qué utilidades tiene.

Por ejemplo, vi algo similar a esto

if ((m.Msg == 0x0201 || m.Msg == 0x0203))


Quería saber si esos valores 0x0201 , 0x0203 son
constantes y si existe alguna referencia con todos los
posibles valores de m.Msg y loq ue significa.

Un saludo a todos.
.

Preguntas similares