我正在研究一个名为CDatePicker的日期选择器,它实现为
class CDatePicker : public CWindowImpl<CDatePicker, WTL::CMonthCalendarCtrl >
我想更改日期矩形,下一个按钮,上一个按钮等的大小。我发现矩形的大小是从这样的调用中获得的
SendMessage(m_CalCtrl.m_hWnd, MCM_GETCALENDARGRIDINFO, 0, (LPARAM) &gridInf)
但这会为我获取大小,因此,当我更改自定义绘画的rect
大小时,控件不会更新,并且鼠标点击不会映射到正确的单元格。
我想知道如何更改大小。
我已经检查了MCM_GETCALENDARGRIDINFO,MCM_HITTEST的msdn页面,并如下实现。
OnPaint()
{
// Init gridInfo
SendMessage(MCM_GETCALENDARINFO, ....., &gridInfo);
CRect rc = gridInfo.rc;
ChangeRCSize(&rc);
DrawStuff(rc, strCustomString);
// Other stuff
}
这是我尝试过的方法,但这并未更新控件,因此鼠标击中的信号并未达到应有的水平。
根据我的调查,日间单元格的大小似乎更多地基于库,而我们无法控制它。