Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Симулирование светодиода
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
lisstret
У меня нубский вопрос. Как делая приложение в виде диалогового окна используя MFC , я могу вывести состояние светодиода? В идеале нужна точка, изменяющая цвет с зеленого на красный. Ни как не пойму в какую сторону рыть. И каким элементом управления, или вообще если возможно без него, вывести текст? Заранее простите за созданную тему, но из гугла я в нужное место попасть не могу.
smalcom
Или самому рисовать закрашенный кружочек(емнип OnPaint) или использовать две картинки для каждого состояния светодиода.
lisstret
Цитата(smalcom @ Jun 26 2014, 23:36) *
Или самому рисовать закрашенный кружочек(емнип OnPaint) или использовать две картинки для каждого состояния светодиода.


Спасибо. То есть в окне диалога можно делать все тоже, что и в окне представления?
smalcom
Все элементы являются окнами.
muravei
Цитата(lisstret @ Jun 26 2014, 14:15) *
И каким элементом управления, или вообще если возможно без него, вывести текст?

Кажется, у вас он назывется - лейбл.

Можно красить квадратик- менять задний цвет текстбокса. ( Вообще то я про Шарп, но разве у вас так нельзя?)
kolobok0
Цитата(lisstret @ Jun 26 2014, 14:15) *
...В идеале нужна точка, изменяющая цвет с зеленого на красный....


не совсем круглая точка, но думаю мысль будет понятна...

где-то в ресурсах диалога

Код
    LTEXT           "",IDC_STATIC_CONNECT_OUT,165,49,19,11


где-то на обработчике события

Код
    if (m_hWnd != NULL)
    {
        CDC* pDc = GetDlgItem(IDC_STATIC_CONNECT_OUT)->GetDC();
        //
        if (pDc != NULL)
        {
            pDc->FillSolidRect(0, 0, 20, 20, RGB(255, 0, 0));
            ReleaseDC(pDc);
        }
    }



вместо красного ...ну думаю понятно... что душеньке угодно...
так-же и регион может быть не прямоугольный...
lisstret
Цитата(kolobok0 @ Jun 27 2014, 06:54) *
не совсем круглая точка, но думаю мысль будет понятна...

где-то в ресурсах диалога

Код
    LTEXT           "",IDC_STATIC_CONNECT_OUT,165,49,19,11


где-то на обработчике события

Код
    if (m_hWnd != NULL)
    {
        CDC* pDc = GetDlgItem(IDC_STATIC_CONNECT_OUT)->GetDC();
        //
        if (pDc != NULL)
        {
            pDc->FillSolidRect(0, 0, 20, 20, RGB(255, 0, 0));
            ReleaseDC(pDc);
        }
    }



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


Благодарю за совет, так и сделал, работает и запихал в OnPaint. Только тут пустой статический текст прорисовывается над моим красненьким квадратиком. В принципе можно все подогнать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.