Void Onbackcolorchanged()

Тема в разделе "MS Visual C++", создана пользователем Laky, 25 июн 2007.

Статус темы:
Закрыта.
  1. Laky

    Laky Гость

    в MV Studio 2005 создаю ActivX компонент на основе SysDateTime32
    выбираю поддержку стандартного свойства BackColor, а как его реализовать?
    если можно, наглядно
     
  2. FreeLa

    FreeLa Гость

    Именно этот класс не поддерживает свойство цвета фона.
    Если хочешь, чтобы менялся цвет, это возможно сделать лишь "нарисовав" его самой.
    Но SysDateTimePick32 поддерживает изменение цвета фона у вырадающего окошка (там, где собственно числа месяца). Там ты можешь развернуться, так как можно менять цвет и фона, и дней недели, и месяца и тд.
    Сделай это, написав в макете функции реализации

    КОД:
    if (m_ctlSysDateTimePick32.m_hWnd)
    {
    m_ctlSysDateTimePick32.Invalidate ();
    m_ctlSysDateTimePick32.SendMessage (DTM_SETMCCOLOR, MCSC_MONTHBK, m_clrBackColor);
    }

    это сообщение твоему окну о необходимости изменить цвет.
    (только не забудь: сообщение необходимо поместить в функцию If, это важно)
     
  3. FreeLa

    FreeLa Гость

    Еще один вариант:
    переделай в .h строчку

    public:
    CContainedWindowT<CDateTimePickerCtrl> m_ctlSysDateTimePick32;

    так мы прибавим, простыми словами, все реализованные свойства CDateTimePickerCtrl.

    необходимо также подключить

    #include <atlapp.h>
    #include <atlctrls.h>

    и добавить

    using namespace WTL; \\ можно конечно написать public:
    \\ CContainedWindowT<WTL::CDateTimePickerCtrl> \\ m_ctlSysDateTimePick32;
    \\ но это на любителя :)
    \\ мне больше нравится строчечка using namespace WTL;

    и в .срр вместо вызова сообщения напиши

    m_ctlSysDateTimePick32.SetMonthCalColor( MCSC_MONTHBK, m_clrBackColor);

    то есть воспользуемся реализованным CDateTimePickerCtrl методом изменения цвета
     
Статус темы:
Закрыта.

Поделиться этой страницей