 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Jue 16 Jun, 2016 10:45 am Asunto: Efectos en calendario (2) |
|
|
En su día Leo me facilitó un código para destacar un rango de días en un TMonthCalendar (Efectos en calendario). He visto que OnGetMonthInfo es un evento de TCommonCalendar, de quien también hereda propiedades TDateTimePicker. ¿Se podría heredar dicho evento para su uso en TDateTimePicker? ¿Cómo? _________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
escafandra Master

Registrado: 29 Nov 2007Mensajes: 625Ubicación: Madrid - España
|
Publicado: Mar 21 Jun, 2016 7:30 pm Asunto: |
|
|
Para lo que dices, deberías derivar tu TMyDateTimePicker de TDateTimePicker, creando un nuevo control.
Mira este ejemplo en el que te marco en negrita el día 15 de junio:
| Código: |
#define BOLDDAY(ds, iDay) \
if (iDay > 0 && iDay < 32)(ds) |= (0x00000001 << (iDay - 1))
#define DTM_GETMCSTYLE (DTM_FIRST + 12)
#define DTM_SETMCSTYLE (DTM_FIRST + 11)
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
DWORD style = SendMessage(DateTimePicker1->Handle, DTM_GETMCSTYLE, 0, 0);
SendMessage(DateTimePicker1->Handle, DTM_SETMCSTYLE, 0, style | MCS_DAYSTATE);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::DateTimePicker1DropDown(TObject *Sender)
{
MONTHDAYSTATE MonthBInfo[3] = {0, 0, 0};
HANDLE hCalendar = (HANDLE)SendMessage(DateTimePicker1->Handle, DTM_GETMONTHCAL, 0, 0);
BOLDDAY(MonthBInfo[0], 0);
BOLDDAY(MonthBInfo[1], 15);
BOLDDAY(MonthBInfo[2], 0);
if(hCalendar > 0)
SendMessage(hCalendar, MCM_SETDAYSTATE, 3, LPARAM(MonthBInfo));
}
|
Para que funcione debes incluir en tu proyecto en manifest de vista (Vista.rc):
| Código: |
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#define RT_MANIFEST 24
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST
{
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?> "
"<assembly xmlns=\"urn:schemas-microsoft-com:asm.v1\" manifestVersion=\"1.0\"> "
"<assemblyIdentity "
"version=\"1.0.0.0\" "
"processorArchitecture=\"X86\" "
"name=\"CompanyName.ProductName.YourApp\" "
"type=\"win32\" "
"/> "
"<description>Your application description here.</description> "
"<dependency> "
"<dependentAssembly> "
"<assemblyIdentity "
"type=\"win32\" "
"name=\"Microsoft.Windows.Common-Controls\" "
"version=\"6.0.0.0\" "
"processorArchitecture=\"X86\" "
"publicKeyToken=\"6595b64144ccf1df\" "
"language=\"*\" "
"/> "
"</dependentAssembly> "
"</dependency> "
"</assembly> "
}
|
Saludos. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|