1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Void Onbackcolorchanged()

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

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

    Laky Гость

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

    FreeLa Гость

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

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

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

    FreeLa Гость

    Репутация:
    0
    Еще один вариант:
    переделай в .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 методом изменения цвета
     
Загрузка...
Статус темы:
Закрыта.

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