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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 15:52   #1
badaladanbad
 
Регистрация: 10.10.2010
Сообщений: 9
По умолчанию Закрасить область

Пишу программу на Borland C++ 5.02
В программе нужно нарисовать фигуру закрашенную тем цветом который выберет пользователь.

Пробовал уже по разному заменить вот этот участок кода:

Код:
      case WM_PAINT :
                hdc = BeginPaint(hwnd, &ps) ;
//              hdc = GetWindowDC(hwnd);
                hbrush = CreateSolidBrush(RGB(0xff,0,0xff));
        SelectBrush(hdc, hbrush);
         hpen=CreatePen(PS_SOLID, IDWidth-100, RGB(0xff,0,0xff));
         SelectPen(hdc, hpen);
         SetROP2(hdc, R2_COPYPEN );
но фигуры так и остаются с черной заливкой. Какой параметр нужен для SetROP2(hdc, R2_COPYPEN );
чтоб заливалось определенным цветом.
Заливаю еще весь исходник, меню там по украински, но думаю вам не будет трудно понять что к чему)

ЗАРАНЕЕ БОЛЬШОЕ СПАСИБО!
Вложения
Тип файла: rar WinAPI.rar (934.0 Кб, 14 просмотров)
badaladanbad вне форума Ответить с цитированием
Старый 20.04.2011, 16:37   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Что такое SelectBrush и SelectPen, мой локальный справочник таких функций не знает

И кисть и карандаш устанавливаются функцией SelectObject, а перед каждым рисованием у вас вот такая кисть устанавливается. Зачем?

Код:
SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ; - это установка Brush
Rectangle (hdc, ptBoxBeg.x, ptBoxBeg.y,ptBoxEnd.x, ptBoxEnd.y) ;
return 0;
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 20.04.2011, 16:50   #3
badaladanbad
 
Регистрация: 10.10.2010
Сообщений: 9
По умолчанию

НУ просто насколько я знаю что после создания пера или кисти ее следует выбрать. она как раз выбирается этими функциями...
Твоим примером не работает...
SetROP2(hdc, R2_COPYPEN );
не знаю что с этим делать... В начале я использую эту функцию для того чтоб показывало область которая будет зарисована SetROP2(hdc, R2_NOT );
а потом как вернуть все назад не знаю... Если ты скачаешь исходник увидишь...
Цвета фигур и линий пока выбирать не надо.
Надо чтоб хотя б в самом WM_PAINT если обьявил цвет заливки чтоб нарисовало, а потом уже установится управление с меню
badaladanbad вне форума Ответить с цитированием
Старый 20.04.2011, 17:05   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Всмысле в моём примере?
Это не мой пример, это твой пример, с моим комментарием.

Код:
SelectObject (hdc, GetStockObject (BLACK_BRUSH)) ; - это установка Brush
Ты устанавливаешь чёрную кисть и потом рисуешь квадратик. Ну так установи не чёрную, а свою, которую создал перед этим. Вот так:

Код:
SelectObject (hdc, hbrush)

Я не понимаю, чего хочешь получить? Зачем вообще mix mode менять? Екзешник твой не работает (cw3230.DLL).
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Закрасить области на графике vefer Microsoft Office Excel 0 24.02.2011 14:08
Как закрасить фон Sergeyst88 Помощь студентам 6 28.10.2009 19:23
неполучаеться закрасить квадрат zlobin212 Паскаль, Turbo Pascal, PascalABC.NET 1 21.10.2009 19:02
Закрасить кнопку artemavd Общие вопросы Delphi 9 12.07.2008 15:37
хочу закрасить розовым цветом(си) Барби Помощь студентам 1 25.05.2008 13:58