Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка с внешним символом http://www.cyberforum.ru/cpp-beginners/thread1021189.html
Недавно уже выкладывал эту задачу , но с очень плохим решением. Преподаватель не разрешил в ней использовать массивы и структуры(забавно) Поэтому в коде целая телега переменных и ошибка ,которая звучит так : 1>main.obj : error LNK2019: ссылка на неразрешенный внешний символ "void __cdecl printTable(float *,float *,float *,float *,float *,float *,float *,float *,float *,float *,float *,float...
C++ Наследование классов в С++ Здравствуйте, нужна помощь в написании программы, может кто - нибудь сталкивался,или имеются похожие задания примеры.Нужна реализовать наследование классов Базовый класс - обьект в пространстве свойства :координаты,методы :перемещение. Исходящие классы: 1 ) Параллелепипед свойства : размер (длина ,ширина ,высота) методы : смена размеров , пропорциональная смена размеров для получения... http://www.cyberforum.ru/cpp-beginners/thread1021187.html
C++ найти произведение двух строк, двумерного массива
Подскажите пожалуйста. Как найти произведение строк двумерного массива, первый элемент которого отрицателен? в консольном виде
Структуры. Как сделать ввод из файла?) C++
Помогите пожалуйста, как сделать, чтобы программа считывала фамилии сотрудников, инициалы, должность и год рождения из файла? :) #include <iostream> using namespace std; struct WORKER //определение нового типа Worker { char surname; // фамилия. char- символьный тип данных; char initials; // инициалы char post; // должность int date; // год рождения };
C++ Не получается повторный ввод числа http://www.cyberforum.ru/cpp-beginners/thread1021155.html
Дано некое задание на вывод массива чисел. В случае неправильности ввода размера массива (более 20-ти чисел), программа должна выводить ошибку и запрашивать новый ввод. Ошибки: >В случае неправильного ввода размера, программа (при нажатии любой клавиши) закрывается. Скрин, исходный код и программа прилагаются. /*made by SiD*/ #include <iostream> #include <cstdlib> #include <ctime> using...
C++ написать прогу банкомат Вот надо написать прогу банкомат и столкнулся с проблемой вот код bool ATM::login() { cout<<"Username"<<endl; cin>>a.username; cout<<"Password"<<endl; cin>>a.password; if((a.username=="alisher") && (a.password==123456)) return true; подробнее

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

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

28.11.2013, 16:24. Просмотров 637. Ответов 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? Если да, то как?
Или искать перегруженную функцию? Тогда где?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru