- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Delphi XE6,我正在创建一个类似 TdateTimePicker 的控件,但由于几个原因,我使用了 TButtonedEdit,其中“嵌入”了 TMonthCalendar。这些定义如下:
TMyMonthCalendar = class(TMonthCalendar)
procedure DoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure DoCloseUp(Sender: TObject);
private
FDroppedDown: boolean;
procedure CNNotify(var Message: TWMNotify); message CN_NOTIFY;
protected
end;
TMyDateEdit = class(TButtonedEdit)
private
FMonthCalendar: TMyMonthCalendar;
procedure DoRightButtonClick(Sender: TObject);
protected
procedure CreateWnd; override;
public
constructor Create(AOwner:TComponent); override;
destructor Destroy; override;
end;
我几乎已经按照预期进行了,当单击右键时会显示月历,而当做出选择、用户导航离开、退出等时我会隐藏它。
令我困惑的是:随着日历“下拉”,如果用户单击或双击标题,日历就会相应地更改为月份或年份的网格。例如,如果用户 ESCapes,此时,当我下次放下日历时,它会返回到该月/年状态,而我希望它恢复显示其 Date 属性的当前月份(如 TDateTimePicker 所做的那样)。
如何将月历的显示恢复到显示之前的单月状态?
编辑:我相信我已经找到了答案:隐藏 MonthCalendar 后,我只需调用 RecreateWnd ,底层屏幕对象就会被销毁,并在下次调用时从头开始重新创建。由于它以单月格式出现,这正是我想要的,所以不需要做任何进一步的事情。
最佳答案
您可以调用MonthCal_SetCurrentView
设置月历的 View (或发送 MCM_SETCURRENTVIEW
)。
uses commctrl;
MonthCal_SetCurrentView(FMonthCalendar.Handle, MCMV_MONTH);
如果您需要检索当前 View ,可以使用MonthCal_GetCurrentView
(或MCM_GETCURRENTVIEW
)。
关于delphi - 在 Delphi 中更改 TMonthCalendar 的状态/格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41203888/
在将我的 Win32 VCL 应用程序从 Delphi 2006 迁移到 Delphi XE6 的过程中,我遇到了以下问题: 我的一个表单有一个 TMonthCalendar(插入 TPanel 进行
默认 TMonthCalendar以 Windows 控制面板中设置的格式显示日期(短日期)。我想覆盖此设置并强制 TMonthCalendar无论 Windows 设置如何,始终显示我的格式。是否可
我有一个使用日历的日志,我想将记录信息的日期加粗。我将它们放在 3D 数组 TDiaryLog = array[1900..2399] of array[1..12] of array[1..31]
有没有办法找出第一个和最后一个可见的TMonthCalendar 中的日期? 谢谢! 最佳答案 使用MonthCal_GetMonthRange : Retrieves date informatio
我用一个名为 TMonthCalendar 的 TMonthCalendar 控件编写了一个 C++ Builder VCL Forms 应用程序。 我想用控件将某些日子设置为粗体。 这是我当前的代码
我正在使用 ScaleBy 方法在运行时放大/缩小应用程序的表单。它适用于几乎所有组件,但不适用于 TMonthCalendar。有没有办法使用 ScaleBy 或任何其他方法来放大 TMonthCa
使用 Delphi XE6,我正在创建一个类似 TdateTimePicker 的控件,但由于几个原因,我使用了 TButtonedEdit,其中“嵌入”了 TMonthCalendar。这些定义如下
TMontCalendar 似乎是一个 Windows 包装器,因此它不会受到新的 VCL 样式的影响,您知道解决方案吗? 最佳答案 TMonthCalendar是 MONTHCAL_CLASS 的包
我是一名优秀的程序员,十分优秀!