【问题标题】:using ScaleBy method for TMonthCalendar对 TMonthCalendar 使用 ScaleBy 方法
【发布时间】:2013-10-29 01:22:41
【问题描述】:

我正在使用 ScaleBy 方法在运行时放大/缩小我的应用程序的表单。它适用于几乎所有组件,但不适用于 TMonthCalendar。 有没有办法使用 ScaleBy 或任何其他方法来放大 TMonthCalendar?

【问题讨论】:

  • v6 控件考虑视觉样式的字体大小。在尝试缩放之前尝试调用 SetWindowTheme(MonthCalendarHandle, '', '') 以获得 v5 控件。
  • 例如:ScaleBy(200, 100);MonthCalendar1.RecreateWnd;SetWindowTheme(MonthCalendar1.Handle, '', '');
  • 嘿@Sertac,你的回答很有帮助。我曾尝试禁用主题,但它不起作用。 MonthCalendar 也不会 RecreatWnd。也许它受到保护。无论如何,我找到了解决方案并将其作为答案发布,但是我失去了视觉风格,但总比没有好!谢谢。
  • 不客气!实际上,访问受保护的 RecreateWnd 方法需要一些技巧,您的解决方案很好。

标签: delphi scale monthcalendar


【解决方案1】:

它可以工作;如果你禁用主题。您还需要更改尺寸以使其正常工作

SetWindowTheme(MonthCalendar1.Handle, '', '');
MonthCalendar1.ScaleBy(190, 100);
MonthCalendar1.Width := MonthCalendar1.Width + 1;
MonthCalendar1.Width := MonthCalendar1.Width - 1;

感谢@Sertac 的提示

【讨论】:

    【解决方案2】:

    MonthCalendar 控件具有固定大小,您无法更改此大小.. 低宽尺寸定义为 225 像素,高宽尺寸定义为 450 像素。

    【讨论】:

    • TMonthCalendarMonth Calendar Windows 控件的包装器,它取决于系统的大小。
    • 是的,我认为这是真的,我提到了从我的系统获得的值。
    猜你喜欢
    • 2017-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多