Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.12.2014, 21:26   #1
Merkava
 
Регистрация: 21.05.2014
Сообщений: 9
По умолчанию Цвет графика

В меню должен быть пункт цвет, как менять цвета я понял(ниже), но я не до конца понял как мне привязать конкретный цвет к кнопке.Например: ВЫБРАТЬ ЦВЕТ - 1)Зеленый 2)Синий.
Я бы это сделал вот так: какую-то проверку: да?По циклу выбирается зеленый цвет.Нет?Выбирается синий цвет.
Выбираем цвет:
Код:
case WM_CREATE:
            hPen1 = CreatePen(PS_SOLID, 2, RGB(0, 100, 0));
            hPen2 = CreatePen(PS_SOLID, 1, RGB(33, 23, 100));
            hPen3 = CreatePen(PS_SOLID, 1, RGB(200, 0, 100));
            return TRUE;
Рисуем сетку и функцию:
Код:
case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        GetClientRect(hWnd, &rect);
        SetMapMode(hdc, MM_ANISOTROPIC);
        SetWindowExtEx(hdc, 628, -400, NULL);
        SetViewportExtEx(hdc, rect.right, rect.bottom, NULL);
        SetViewportOrgEx(hdc, rect.right / 2, rect.bottom / 2, NULL);
 
        SelectObject(hdc, hPen3);
 
        for (float i = -314; i < 314; i += 78.5)
        {
            MoveToEx(hdc, i, 200, NULL);
            LineTo(hdc, i, -200);
        }
        for (float i = -200; i <= 200; i += 50)
        {
            MoveToEx(hdc, -314, i, NULL);
            LineTo(hdc, 314, i);
        }
 
        SelectObject(hdc, hPen1);
 
        MoveToEx(hdc, -314, 0, NULL);
        LineTo(hdc, 314, 0);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, 0, -200);
        MoveToEx(hdc, 314, 0, NULL);
        LineTo(hdc, 294, 10);
        MoveToEx(hdc, 314, 0, NULL);
        LineTo(hdc, 294, -10);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, 10, 180);
        MoveToEx(hdc, 0, 200, NULL);
        LineTo(hdc, -10, 180);
 
        SelectObject(hdc, hPen2);
        x_scr = -314;
        MoveToEx(hdc, x_scr, 0, NULL);
 
        for (x == -PI; x < PI; x += 0.01, x_scr++) // горизонтальные линии
        {
            y = sin(x);
            y_scr = y * 200;
            LineTo(hdc, x_scr, y_scr);
        }
 
        /*EndPaint(hWnd, &ps);*/
        break;
Изображения
Тип файла: jpg Безымянный.jpg (72.2 Кб, 128 просмотров)

Последний раз редактировалось Stilet; 01.12.2014 в 21:30.
Merkava вне форума Ответить с цитированием
Старый 01.12.2014, 23:02   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Сделать переменную hSelectedPen, изначально равной одному из нужных цветов.
При нажатии на соответствующую кнопку копируем hPen1/hPen2/hPen3 в hSelectedPen. Соответственно саму кнопку рисуем с помощью hSelectedPen

При обработке сообщений окна следует избегать return TRUЕ - следует возвращать значение, полученное от DefWindowProc()
waleri вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача по delphi: изменять цвет формы и чтобы при снятии флажка с checkbox1 цвет формы был по умолчанию Luchfan12 Помощь студентам 8 13.03.2014 10:14
Язык Си. Графика. Цвет фона, текста. Землянин Помощь студентам 0 14.05.2012 12:53
Цвет графика в Chart не такой как задан Smerch66 Общие вопросы Delphi 1 15.05.2010 13:01
Каким образом можно изменять цвет фона и цвет шрифта в Label? jungle Win Api 17 21.09.2009 00:38
Как с помощью JavaScript изменить цвет фона ячеек в таблице,так что бы можно было выбрать цвет из списка Gotessa JavaScript, Ajax 1 09.05.2009 16:05