Control calendario de mes / Month calendar control

12/12/2003 - 11:02 por Enrique Fuente | Informe spam
Hola a todos/as,
He hecho una aplicación Visual C++ basada en diálogo que
emplea un control CMonthCalCtrl que me está dando algún
problema.
En modo debug funciona perfectamente. Pero en modo release
ocurre algo extraño: cuando selecciono explícitamente un
día (con el ratón), la fecha que asume seleccionada es
otra distinta, un determinado número de días más tarde.
Por ejemplo, 37 días (error constante): si selecciono el
10 de diciembre, el MessageBox de mi aplicación con la
fecha dice 16 de enero, y cuando pulso 'Aceptar' en el
MessageBox la selección del calendario se va al 16 de
enero. Si ahora hiciese aparecer de nuevo el MessageBox
pulsando un botón del diálogo (estando ahora seleccionado
el 16 de enero), me diría otra vez 16 de enero, sin error,
ya que no he seleccionado ese día con el ratón sino que se
ha seleccionado solo. Lo mismo si avanzo de mes y queda
seleccionado el 16 de febrero, en ese caso tampoco hay
error, solamente cuando selecciono el día pulsando con el
ratón. Si cierro la aplicación y la vuelvo a abrir, ahora
el error es un número distinto de días, pero que se
mantendrá constante hasta que lo cierre de nuevo.
¿Alguna idea? Gracias y un saludo,

Enrique

////////////////////////////////////////////////////////

Hello everybody,
I am developping a dialog based Visual C++ application
using a CMonthCalCtrl control which is causing me some
trouble.
In debug mode it works fine. But something strange happens
in release mode: when explicitly selecting a day (by mouse
clicking), the assumed date is a different one, some days
later. For example, 37 days later (constant error): if
mouse clicking on december 10th, the date displaying
MessageBox in my program shows january 16th, and when
pressing 'Accept' in the MessageBox the selection in the
calendar control moves to january 16th. If now I pressed a
button in the dialog so the MessageBox reappeared (with
january 16th now selected) it would show january 16th
again, this time with no error, since now the day was not
selected by mouse clicking but it moved there by itself.
The same applies if advancing month to february, selection
changes to february 16th and the MessageBox would commit
no error, only when the day is mouse clicked. When the
application is closed and restarted the error number of
days is different, though it will keep constant until the
program is closed again.
Any idea? Thanks and best regards,

Enrique
 

Leer las respuestas

#1 Sergio
12/12/2003 - 14:11 | Informe spam
Pues acabo de hacer una prueba y a mi me funciona sin ningún problema.
Lo que he hecho es hacer un control en el formulario, asignarle una variable
de control, y a un boton del formulario hacerle hacer lo siguiente:


CTime tiempo;
fecha.GetCurSel(tiempo); // Fecha es la varible de control
CString aux;
aux = tiempo.Format("%d/%m/%Y");
MessageBox(aux);

Y el MessageBox me saca la fecha tal y como yo quiero, es decir
dia/mes/año(con 4 digitos).
Esta probado en relase y debug, y funciona en los dos.

Pon tu código para que veamos que es lo que pasa, así podremos ayudarte
mejor, y si lo solucionas tb pon como, para saber que es lo que no tenemos
que hacer.

Preguntas similares