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!