Obtener Int de un EDIT y otros problemas. Windows Api.

Iniciado por @XSStringManolo, 13 Junio 2019, 20:46 PM

0 Miembros y 1 Visitante están viendo este tema.

@XSStringManolo

Cita de: DoeJohn en 14 Junio 2019, 12:20 PM
Hola

Según leo, uno de los problemas es convertir un string a un int, eso lo puedes hacer muy fácil, no necesitas ninguna API:

Código (cpp) [Seleccionar]
   std::string cadena = "123";
   int numero;

   numero = std::stoi(cadena);

   // Tambien de esta otra forma

   numero = std::atoi(cadena.c_str());


Lo que desconozco es si la API de windows tiene algún método para obtener un int directamente de un control EDIT, nunca la he usado.

Un saludo
Muchas gracias, probé con varias funciones y no había manera, atoi c_str incluida. Hay que hacer varios casts distintos. Igual si pruebo con stoi también funciona bien.

Al final me puso otro usuario la de la Api. Lo bueno de funcion esta es que se ocupa de todo. Quita espacios, opcion para signed o unsigned, y un bool para saber si la funcoin se ejecutó correctamente.
Si se encuentra un caracter la funcion para ahí de obtener ints. De todas formas el EDIT solo deja escribir números con ES_NUMBER

El control EDIT es:
hwndEdit4 = CreateWindowW(L"Edit", L"", WS_CHILD | WS_VISIBLE | ES_NUMBER ,
167, 338, 154, 15, hwnd, (HMENU)ID_VUELTAS, NULL, NULL);

Y cuando el boton enter es pulsado:
VueltasEnInt = GetDlgItemInt(hwnd, ID_VUELTAS,NULL, false);

Está chula la api. Si no usas ninguna de guis te la recomiendo. Creo que no llevo ni 2 semanas con la api (no se ni si una o poco más) y ya tengo una aplicación sencilla creada. (Con mucha ayuda del foro)

Becerra

Hola

Cita de: string Manolo en 14 Junio 2019, 14:23 PM
Muchas gracias, probé con varias funciones y no había manera, atoi c_str incluida. Hay que hacer varios casts distintos. Igual si pruebo con stoi también funciona bien.

Pues el ejemplo que te he puesto lo acabo de probar y funciona, sin cast ni nada, te daría algún error o algo.

Cita de: string Manolo en 14 Junio 2019, 14:23 PM
Está chula la api. Si no usas ninguna de guis te la recomiendo. Creo que no llevo ni 2 semanas con la api (no se ni si una o poco más) y ya tengo una aplicación sencilla creada. (Con mucha ayuda del foro)

No me gusta, bueno, a parte uso linux  :rolleyes: aunque ahora esté escribiendo desde windows  :silbar:.  Yo soy caso especial, no trabajo de programador, lo que hago es para luego usarlo en mis trabajo y en casa y tengo equipos con linux y con windows, así que uso Qt por el tema
multiplataforma.

Un saludo
Buenas preguntas obtienen mejores respuestas