Red de conocimiento informático - Problemas con los teléfonos móviles - Bucle de mensajes de la consola Vc

Bucle de mensajes de la consola Vc

VOID MouseEventProc(MOUSE _ EVENT _ RECORD);

VOID ResizeEventProc(WINDOW _ BUFFER _ TAMAÑO _ RECORD);

VOID KeyEventProc(KEY _ EVENT _ RECORD);

VOID GetInputEvents(VOID);

DWORD main(vacío)

{

Procesando hStdin

DWORD cNumRead, fdwMode, fdwSaveOldMode, I;

INPUT _ RECORD irin buf[128];

//Obtiene el identificador de entrada estándar.

HST din = GetStdHandle(STD_INPUT_HANDLE);

if(HST din = = INVALID_HANDLE_VALUE)

MyErrorExit(" GetStdHandle " );

//Guarde el modo de entrada actual y restáurelo al salir.

If (!GetConsoleMode(HST din amp; fdwSaveOldMode))

MyErrorExit(" GetConsoleMode ");

// Habilitar eventos de entrada de ventana y mouse.

FD wmode = HABILITAR _ VENTANA _ ENTRADA | HABILITAR _ MOUSE _ ENTRADA

If (!SetConsoleMode(hStdin, fdwMode))

MyErrorExit(" SetConsoleMode ");

//Bucle para leer y procesar eventos de entrada.

mientras (1)

{

//Esperando eventos.

If (!ReadConsoleInput(

hStdin, //Ingrese el identificador del búfer

irInBuf, //Búfer a leer

128, //El tamaño del buffer de lectura

ampcNumRead) ) //El número de registros leídos

MyErrorExit(" ReadConsoleInput ");

// Envía el evento al controlador apropiado.

for(I = 0; i ltcNumReadi)

{

switch(irInBuf[i].EventType)

{< / p>

case KEY_EVENT: //Entrada de teclado

KeyEventProc(irin buf[I]. event . key event);

Break;

case mouse_event: //entrada del mouse

MouseEventProc(irin buf[I]. event. mouse event);

Break;

Caso window_buffer ZONE_SIZE_EVENT://scrnbuffer .

Resize

ResizeEventProc(

irin buf[I]. event . windowbuffersizeevent);

Break;

Case focus_event: //Ignorar eventos de enfoque

Caso menu_event: //Ignorar eventos de menú

Break;

Valor predeterminado:

MyErrorExit( "Tipo de evento desconocido"

Romper

}

}

}

Devuelve 0; p>}

Creo que el "Código MSDN" le resultará útil.