![]() |
![]() |
|
|
|
|
|
Por Ivan Cachicatari
El control CEdit por defecto solo puede manipular texto y con la propiedad ES_NUMBER es posible aceptar solamente números pero sin números decimales. Pensando en esas deficiencias es que desarrollé un control basado en CEdit para poderlo utilizar en algunas aplicaciones que estaba desarrollando. Después de algunas modificaciones, he preparado la clase para compartirla con ustedes.
Todas las características están encapsuladas en la clase CNSDoubleEdit.
La clase se inicializa con el valor cero por defecto y 2 posiciones decimales. Para cambiar el signo del numero solo se tiene que presionar el símbolo guión del teclado.
Como se trata de una clase derivada de CEdit (MFC) se puede instanciar en un dialogo.
CNSDoubleEdit ::SetDecimalPlaces
Ésta función establece la cantidad de lugares decimales que mostrará el control. Éste valor puede estar entre 0 y 8 (pueden modificar el código fuente para que pueda aceptar mas). En el parámetro nDecimals se indica el valor.
void SetDecimalPlaces(int nDecimals);
La función no devuelve ningún valor.
Establece un valor double dado en el parámetro dValue, y actualiza el valor en el control si éste está activo, el numero se formateará según los lugares decimales establecidos.
void SetDoubleVal(double dValue);
La función no devuelve ningún valor;
Devuelve el valor actual del control en el tipo de dato double.
double GetDoubleVal();
Pueden descargar el código fuente de la clase y un proyecto de ejemplo de uso de la clase CNSDoubleEdit. La imagen siguiente muestra al control en acción.

NSDoubleEdit en Acción
El código fuente se brinda tal como está, sería excelente que me escribas si vas a utilizarlo en aplicaciones comerciales.
Pueden escribir un post en el foro preparado para éste artículo para absolver dudas (ver los enlaces mas abajo).
![]() |
![]() |
|||
Comentarios y Consultas
+ Agregar Comentario/Consulta -> Ver todos los comentarios |
||||
![]() |
![]() |