Void Onbackcolorchanged()

  • Автор темы Laky
  • Дата начала
Статус
Закрыто для дальнейших ответов.
L

Laky

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

FreeLa

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

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

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

FreeLa

Гость
#3
Еще один вариант:
переделай в .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 методом изменения цвета
 
Статус
Закрыто для дальнейших ответов.