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

Не работает RectInRegion (HRGN, TRect), при явном пересечении возвращает ноль - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка массива после первого отрицательного, найти ошибку. http://www.cyberforum.ru/cpp-beginners/thread537252.html
программа должна отсортировать массив после первого отрицательного. попробовал пузырьковую сортировку, алгоритм правильный но что то она все равно не работает. #include "stdafx.h" #include "ostream" #include "conio.h" using namespace std; const int n=5; void input (int w, int p) { cout<<"\n vv_"<<p<<"_elementov"<<endl; for (int i=0; i<p; i++) cin>>w;
C++ Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку. Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку. http://www.cyberforum.ru/cpp-beginners/thread537242.html
C++ Получить параметры запуска приложения
надо получить параметры запуска приложения а как? void main(int argv, char *argc) { /*Получаем из командной строки ряд параметров -Dir + fileInput
решение однородной системы линейных уравнений методом Гаусса C++
помогите пожалуйста, может у кого-то есть код программы решение систем лин.уравнений методом Гаусса, если система однородная, то есть все уравнения =0 -11x1 -2.4x2 -2.4x6 = 0 -2.4x1 -11x2 - 2.4x3 = 0 -2.4x2 - 11x3 - 2.4x4=0 -2.4x3 - 11 x4 - 2.4 x5 =0 -2.4x4 - 11x5 - 2.4 x6 = 0 -2.4x1 - 2.4 x5 - 11x6 =0 http://www.cyberforum.ru/cpp-beginners/thread99118.html#post2865529 - форум
C++ Заполнние массива числами http://www.cyberforum.ru/cpp-beginners/thread537201.html
Нужно заполнить массив с консоли 5 цифрами и вывести не чётные на консоль.. Я что то ни как ни могу сообразить.. #include <iostream> using namespace std; void main() { setlocale (LC_ALL, "Russian"); int numb; cout << numb; // тут выводится какая то кряказяба почему?
C++ Умножение матриц с использованием OpenMP Здрасте. Есть следующая задача. Нужно реализировать умножение двух квадратных матриц с использованием OpenMP. Без него все пашет нормально, но вот когда использовать его, то нельзя изменять счетчик в теле цыкла. Долго копался в коде но не смог сделать. Вот мой код умножения, если можно переделать именно его для использования OpenMP буду очень признателен) int** Multipl(int** matr1, int**... подробнее

Показать сообщение отдельно
Deimon
 Аватар для Deimon
34 / 34 / 2
Регистрация: 29.08.2009
Сообщений: 178
03.04.2012, 09:24     Не работает RectInRegion (HRGN, TRect), при явном пересечении возвращает ноль
Вот так вот обрубок кода (пишу в билдере, потому без main) Работает, компилируется без проблем. Но Сообщение не выводит что есть пересечние. Чувствую, что глупая ошибка, но не пойму где Буду рад любой помощи.

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
40
41
42
43
44
45
46
47
48
49
50
    class CObject
    {
        private:
            HRGN m_hRgn;
            TRect m_rect;
        public:
            CObject()
            {
                TPoint array[4];
                array[0]=TPoint(0,0);
                array[0]=TPoint(50,0);
                array[0]=TPoint(0,100);
                array[0]=TPoint(50,100);
                CreatePolygonRgn(array,4,WINDING);
                m_rect = TRect(0,0,50,100);
            }
            TRect ShowRect(void)
            {
                /*return TRect(m_rect.Left,
                            m_rect.Top,
                            m_rect.Right,
                            m_rect.bottom); */
                return m_rect;
            }
            HRGN ShowRgn(void)
            {
                return m_hRgn;
            }
    };
 
    class CBot
    {
        private:
            CObject m_obj;
 
        public:
            TRect* ShowRect(void)
            {
                return &m_obj.ShowRect();
            }
            HRGN ShowRgn(void)
            {
                return m_obj.ShowRgn();
            }
 
    };
    CBot bot;
    if (RectInRegion(bot.ShowRgn(),bot.ShowRect())) {
        ShowMessage("yes");
    }
Добавлено через 9 часов 57 минут
Немного изменил код, (забыл про присваивание функцией CreatePolyRegion переменной m_hRgn) Но все еще не выскакивает ни каких сообщений В чем может быть дело?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
class CObject
    {
        private:
            HRGN m_hRgn;
            TRect m_rect;
            TPoint array[4];
        public:
            CObject()
            {
 
                array[0]=TPoint(0,0);
                array[0]=TPoint(50,0);
                array[0]=TPoint(0,100);
                array[0]=TPoint(50,100);
                m_hRgn = CreatePolygonRgn(array,4,WINDING); // добавлено m_hRgn =...
                m_rect = TRect(0,0,50,100);
                if (RectInRegion(ShowRgn(),ShowRect())) 
                                             {
                    ShowMessage("yes");
                }
            }
            TRect* const ShowRect(void)
            {
                return &TRect(m_rect.Left,
                            m_rect.Top,
                            m_rect.Right,
                            m_rect.bottom);
 
            }
            HRGN ShowRgn(void)
            {
                return m_hRgn;
            }
    };
 
    class CBot
           {
        private:
                                  CObject m_obj;
 
        public:
            TRect* ShowRect(void)
            {
                return m_obj.ShowRect();
            }
                                  HRGN ShowRgn(void)
            {
                                             return m_obj.ShowRgn();
            }
 
    };
    CBot bot;
    if (RectInRegion(bot.ShowRgn(),bot.ShowRect())) 
           {
        ShowMessage("yes");
    }
Добавлено через 3 минуты
Я дибил
C++
1
2
3
4
5
6
7
8
9
10
                array[0]=TPoint(0,0);
                array[0]=TPoint(50,0);
                array[0]=TPoint(0,100);
                array[0]=TPoint(50,100);
 
                array[0]=TPoint(0,0);
                array[1]=TPoint(50,0);
                array[2]=TPoint(0,100);
                array[3]=TPoint(50,100);
//и не забыть присваивать
Сори за флуд.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru