Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++2010 и GDI+ не рисует многоугольник - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка с внешним символом http://www.cyberforum.ru/cpp-beginners/thread1021189.html
Недавно уже выкладывал эту задачу , но с очень плохим решением. Преподаватель не разрешил в ней использовать массивы и структуры(забавно) Поэтому в коде целая телега переменных и ошибка ,которая...
C++ Наследование классов в С++ Здравствуйте, нужна помощь в написании программы, может кто - нибудь сталкивался,или имеются похожие задания примеры.Нужна реализовать наследование классов Базовый класс - обьект в пространстве ... http://www.cyberforum.ru/cpp-beginners/thread1021187.html
C++ найти произведение двух строк, двумерного массива
Подскажите пожалуйста. Как найти произведение строк двумерного массива, первый элемент которого отрицателен? в консольном виде
Структуры. Как сделать ввод из файла?) C++
Помогите пожалуйста, как сделать, чтобы программа считывала фамилии сотрудников, инициалы, должность и год рождения из файла? :) #include <iostream> using namespace std; struct WORKER...
C++ Не получается повторный ввод числа http://www.cyberforum.ru/cpp-beginners/thread1021155.html
Дано некое задание на вывод массива чисел. В случае неправильности ввода размера массива (более 20-ти чисел), программа должна выводить ошибку и запрашивать новый ввод. Ошибки: >В случае...
C++ написать прогу банкомат Вот надо написать прогу банкомат и столкнулся с проблемой вот код bool ATM::login() { cout<<"Username"<<endl; cin>>a.username; cout<<"Password"<<endl; cin>>a.password; ... подробнее

Показать сообщение отдельно
kotgav
2 / 2 / 0
Регистрация: 13.07.2013
Сообщений: 62

С++2010 и GDI+ не рисует многоугольник - C++

28.11.2013, 16:24. Просмотров 666. Ответов 3
Метки (Все метки)

Подскажите, пожалуйста, в чем причина того, что на данном объекте Graphics-наследнике класса Image с именем g,
текст выводится исправно, а другие фигуры рисоваться не хотят?
В частности, мне надо нарисовать многоугольник с тремя вершинами (это для примера, фактически нужны 17 вершин).
Я создал объект myPen типа Pen и массив точек многоугольника PointsArr[3] типа Point.
В строке с функцией DrawPoligon компилятор дает две ошибки:
1. Подсвечивается точка после объекта g:
Отсутствуют экземпляры перегруженная функция "Gdiplus::Graphics:rawPolygon", соответствующие списку элементов.
2. Подсвечивается конец функции между квадратной и круглой скобками:
Слишком мало аргументов в вызове функции.
Что я делаю не так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
///////////////////////////////////////////////////////////////////////////////////////
// Функция рисования на объекте bitmap. Запускается от case WM_PAINT
void OnPaint(HDC hdc, const RECT& rc)
{
    // Все строки - в кодировке Unicode
    WCHAR welcome[]=L"Welcome, GDI+ !";
 
    // Создаем контекст рисования и устанавливаем пиксельную систему координат
    Graphics g(hdc);
    g.SetPageUnit(UnitPixel);
    RectF bounds(0, 0, float(rc.right), float(rc.bottom));
 
    Pen* myPen = new Pen(Color::Red);  // создаю моё перо красного цвета 
 
    // Загружаем фоновое изображение и растягиваем его на все окно
    Image bg(L"BACKGRND.gif");
    g.DrawImage(&bg, bounds);
 
    // Создаем кисть с градиентом на все окно и полупрозрачностью
    LinearGradientBrush brush(bounds, Color(130, 255, 0, 0), Color(255, 0, 0, 255), 
            LinearGradientModeBackwardDiagonal); 
    
    // Готовим формат и параметры шрифта
    StringFormat format;
    format.SetAlignment(StringAlignmentCenter);
    format.SetLineAlignment(StringAlignmentCenter);
    Font font(L"Arial", 48, FontStyleBold);
 
    // Выводим текст приветствия, длина -1 означает, что строка заканчивается нулем
    g.DrawString(welcome, -1, &font, bounds, &format, &brush);
 
    // Создаем массив точек многоугольника
    Point PointsArr[3] = {
        Point(50,50),
        Point(100,25),
        Point(200,5)};
        
    g.DrawPolygon(myPen, PointsArr[3]);    // Рисуем полигон (не рисует!!!)
}
Добавлено через 6 часов 20 минут
Добавлю, что это - консольное приложение, среда - Visual Studio 2010 Professional.

Добавлено через 14 часов 13 минут
Дополню вопрос.
Мне самому надо перегрузить функцию DrawPolygon? Если да, то как?
Или искать перегруженную функцию? Тогда где?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru