在 Win32 中子类化 MonthCal 控件
Posted
技术标签:
【中文标题】在 Win32 中子类化 MonthCal 控件【英文标题】:Subclass a MonthCal control in Win32 【发布时间】:2008-09-19 10:32:26 【问题描述】:目的:使用标准的Win32 MonthCal控件,用RED绘制节假日等日子。
Win32 的原生方法似乎是使用MCN_GETDAYSTATE 通知,这似乎只允许以粗体绘制特定日期。
可能(但被拒绝)的解决方案是编写我自己随意绘制的 MonthCalendar,将自己赶出主题支持 - 这意味着当有更新的主题出现时,我的控制可能不会与 UI 保持一致。
如果有人遇到此问题,将不胜感激。
【问题讨论】:
我认为对特定颜色的硬连线要求已经使您脱离了主题支持。 【参考方案1】:如果您的应用程序不使用任何 MFC,而是使用纯 win32 调用编写的,那么执行您想要的操作的 MFC 控件是不可能的。因此,您可以使用 MFC 或 win32 进行控件 - 显然 MFC 控件将在后台使用 win32,但 15 年的 Windows 开发人员约定表明,当有人谈论“win32 控件”时,它是一个“仅使用 win32 调用的控件” ,没有外部库”和“MFC 控件”是“直接或间接从 CWnd 派生并使用 MFC 类和使用模式的控件”。
不管怎样,看看http://www.bcgsoft.com/samples/calendar.htm。他们的 UI 套件中有一个控件,看起来像 MonthCal 控件,但您可以在其中用颜色指示日期范围等。
【讨论】:
【参考方案2】:做不到。该控件仅支持以粗体显示某些日子。
您的目标是什么平台(桌面或 WM?)如果是桌面,它真的是 win32 还是 MFC 解决方案可以接受?
【讨论】:
以上是关于在 Win32 中子类化 MonthCal 控件的主要内容,如果未能解决你的问题,请参考以下文章