我尝试通过CalColors更改TMonthCalendar的设置,但是它不起作用。无论是在设计时还是在运行时。日历保持不变。

更新:
看起来有人在Quality Central上报告了完全相同的问题:
http://qc.embarcadero.com/wc/qcmain.aspx?d=53494

最佳答案

正如David所说,TMonthCalendar内部使用MCM_SETCOLOR消息来设置控件的颜色,但是当激活视觉样式时,此消息无效。作为解决方法,您可以使用SetWindowTheme函数仅在此控件上禁用视觉样式。

试试这个例子:

uses
  UxTheme;

   SetWindowTheme(MonthCalendar1.Handle, '', '');
   MonthCalendar1.CalColors.MonthBackColor:=clWebKhaki;
   MonthCalendar1.CalColors.TitleBackColor:=clWebDarkOrange;

10-07 20:03