Изменение размера ячеек Datepicker на основе WTL - PullRequest
0 голосов
/ 28 ноября 2018

Я работаю над средством выбора даты с именем CDatePicker, которое реализовано как

class CDatePicker : public CWindowImpl<CDatePicker, WTL::CMonthCalendarCtrl >

Я хочу изменить размер прямоугольника дня, следующей кнопки, предыдущих кнопок и т. Д. Я обнаружил, что размер прямоугольникаполучается из вызова, подобного этому

SendMessage(m_CalCtrl.m_hWnd, MCM_GETCALENDARGRIDINFO, 0, (LPARAM) &gridInf)

Но для меня выбирается размер, поэтому, когда я изменяю размер rect для пользовательской краски, элемент управления не обновляется, а нажатия мыши непривязаться к нужным ячейкам.

Я хочу знать, как изменить размер.

Я проверил страницы MSDN для MCM_GETCALENDARGRIDINFO , MCM_HITTEST и реализовано, как показано ниже.

OnPaint()
{
    // Init gridInfo
    SendMessage(MCM_GETCALENDARINFO, ....., &gridInfo);
    CRect rc = gridInfo.rc;

    ChangeRCSize(&rc);
    DrawStuff(rc, strCustomString);

    // Other stuff
}

Это то, что я пробовал, но это не обновляет элемент управления, и поэтому попадания мыши не получают, как и должно быть.

Из моего расследованиякажется, что размер дневной ячейки больше зависит от библиотеки, и мы не можем ее контролировать.

...