Cita:
Empezado por duilioisola
¿Sabes a qué se refiere la estructura MONTHDAYSTATE?
|
Gracias por la ayuda. Estuve viendo el enlace que pusiste, me aclaró bastantes cosas y encontré la manera de hacer lo que quería. He usado este código:
Código:
void __fastcall TfFacAlb::DateTimePicker1DropDown(TObject *Sender)
{
MONTHDAYSTATE MonthBInfo[3] = {0, 0, 0};
Word Year, Month, Day;
DateTimePicker1->MinDate = FecPago->MinDate;
DateTimePicker1->MaxDate = FecPago->MaxDate;
HANDLE hCalendar = (HANDLE)SendMessage(DateTimePicker1->Handle, DTM_GETMONTHCAL, 0, 0);
for (TDate d = DateTimePicker1->MinDate; d <= DateTimePicker1->MaxDate; d ++)
{
DecodeDate(d, Year, Month, Day);
BOLDDAY(MonthBInfo[0], Day);
BOLDDAY(MonthBInfo[1], Day);
BOLDDAY(MonthBInfo[2], Day);
if(hCalendar > 0)
SendMessage(hCalendar, MCM_SETDAYSTATE, 3, LPARAM(MonthBInfo));
}
}
Pero me falta algo. La primera vez que se despliega el DateTimePicker hace lo que quiero.

Pero si salgo de ese desplegable, al volver a mostrar el mes me hace lo mismo de antes: uno sí los pone en negrita y otros no.

Tengo que ver si hay alguna forma de "resetear" el mes.