我需要更改TDateTimePicker控件的字体以使其变大。Font属性仅适用于编辑栏,我将其设置为12px,但需要对日历执行相同的操作。有一个Calendar控件支持此TDateTimePicker控件,我如何访问它?我试着查看其他属性并搜索.Calendar或其他会暴露底层日历的东西,但没有成功。
TDateTimePicker
Font
.Calendar
的数据
o75abkj41#
TDateTimePicker是Win32 DTP control周围的一个薄 Package 。VCL不公开对下拉日历的访问。但是,您可以向TDateTimePicker发送DTM_GETMONTHCAL消息(或使用DateTime_GetMonthCal()函数):获取日期和时间选择器(DTP)的子月历控件的句柄。请务必在文档中注意以下事项:当用户单击下拉箭头时,DTP控件会创建一个子月历控件(DTN_DROPDOWN通知)。当不再需要月历时,它会被销毁(销毁时会发送DTN_CLOSEUP通知)。因此,您的应用程序不能依赖DTP控件的子月历的静态句柄。因此,您必须在TDateTimePicker.OnDropDown事件中操作日历,例如:
DTM_GETMONTHCAL
DateTime_GetMonthCal()
DTN_DROPDOWN
DTN_CLOSEUP
TDateTimePicker.OnDropDown
uses ..., Winapi.CommCtrl; procedure TForm1.DateTimePicker1DropDown(Sender: TObject); var CalendarWnd: HWND; begin CalendarWnd := DateTime_GetMonthCal(DateTimePicker1.Handle); // use CalendarWnd as needed... end;
字符串
UPDATE:正如@AmigoJack在评论中指出的那样,您可以向TDateTimePicker发送DTM_SETMCFONT消息(或使用DateTime_SetMonthCalFont()函数):
DTM_SETMCFONT
DateTime_SetMonthCalFont()
设置日期和时间选择器(DTP)控件的子月历控件使用的字体。
DateTime_SetMonthCalFont(DateTimePicker1.Handle, DateTimePicker1.Font.Handle, DateTimePicker1.DroppedDown);
型
1条答案
按热度按时间o75abkj41#
TDateTimePicker
是Win32 DTP control周围的一个薄 Package 。VCL不公开对下拉日历的访问。但是,您可以向
TDateTimePicker
发送DTM_GETMONTHCAL
消息(或使用DateTime_GetMonthCal()
函数):获取日期和时间选择器(DTP)的子月历控件的句柄。
请务必在文档中注意以下事项:
当用户单击下拉箭头时,DTP控件会创建一个子月历控件(
DTN_DROPDOWN
通知)。当不再需要月历时,它会被销毁(销毁时会发送DTN_CLOSEUP
通知)。因此,您的应用程序不能依赖DTP控件的子月历的静态句柄。因此,您必须在
TDateTimePicker.OnDropDown
事件中操作日历,例如:字符串
UPDATE:正如@AmigoJack在评论中指出的那样,您可以向
TDateTimePicker
发送DTM_SETMCFONT
消息(或使用DateTime_SetMonthCalFont()
函数):设置日期和时间选择器(DTP)控件的子月历控件使用的字体。
型