[C con Clase] Caracteres Extraños

Salvador Pozo salvador en conclase.net
Mie Abr 25 23:36:42 CEST 2007


El pasado 2007-04-25 17:36:33, Paco escribió:
 
P> Bueno, estoy programando en windows con sus librerías (windows.h).
P> 
P> Mi pregunta es, como controlo dentro del código si usa un carácter que no sea ASCII?, por ejemplo esta claro que no puedo hacer
P> 
P> RegisterHotKey(hwnd, ID_AZUL, MOD_CONTROL, 'あ');
P> 
P> Uso Dev-C++, por si pica curiosidad.

Hola:

No he podido probar si es posible usar el carácter '?' como "hot hey", aunque la función no produce un error. El problema, en este caso, puede ser que en un teclado español no sea posible usar esta tecla.

Además, el carácter '?' pertenece al conjunto ASCII, así que esa tampoco es forma de limitar los caracteres posibles.

Lo que se me ocurre es validar el carácter. Esta situación es más probable si es el usuario el que elige la tecla, y es buena costumbre no fiarse del usuario, es decir, validar todas sus entradas y opciones para asegurarse de que están entre los valores válidos.

En tu caso, lo ideal sería comparar con un conjunto de caracteres válidos, y si no pertenece a ese conjunto, rechazar la entrada.

Si sólo te interesa que sean teclas alfabéticas, puedes usar funciones estándar, como strpbrk:
http://c.conclase.net/librerias/funcion.php?fun=strpbrk

Pero también se pueden usar teclas de función, por lo que este sistema resulta poco útil.

Yo usaría un combobox para que el usuario sólo pudiera elegir entre los valores que nosotros dejemos como opciones válidas.

Hasta pronto.

-- 
Salvador Pozo (Administrador)
mailto:salvador en conclase.net


Más información sobre la lista de distribución Cconclase