Red de conocimiento informático - Problemas con los teléfonos móviles - Introducción a la programación de Windows. Construí una ventana, dibujé un cuadrado y lo moví de izquierda a derecha. Pensando que chocó contra una pared y no podía moverse. ¿Cómo debemos emitir juicios y buscar ideas?

Introducción a la programación de Windows. Construí una ventana, dibujé un cuadrado y lo moví de izquierda a derecha. Pensando que chocó contra una pared y no podía moverse. ¿Cómo debemos emitir juicios y buscar ideas?

La idea es muy simple, es decir, cuando la coordenada más a la derecha del cuadrado está a punto de ser mayor o igual a la coordenada más a la derecha del área del cliente, g_x ya no suma 100. Por lo tanto, primero se debe procesar el mensaje WM_SIZE para obtener el tamaño del área del cliente. El código es el siguiente:

Primero, declara static int cxClient, cyClient en la parte superior;

Segundo: procesa el mensaje WM_SIZE.

case WM_SIZE:

cxClient = LOWORD (lParam);

cyClient = HIWORD (lParam); tratar con su El mensaje se ha movido. ¡Aquí hay un ejemplo de cómo moverlo hacia la derecha!

Código modificado:

if(g_x 200lt; =cxClient)

g_x =100;

InvalidateRect(hwnd, NULL, TRUE );

¿Por qué sumar 200? Parece que tu g_x es la coordenada más a la izquierda, así que primero suma cien. ¡El 100 al final significa que si agregas más, excederá el área de clientes!