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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
morro
2 / 2 / 0
Регистрация: 10.04.2012
Сообщений: 13
#1

GetPixel, почему первый иф равен тру, а второй - нет - C++

18.06.2012, 04:16. Просмотров 441. Ответов 6
Метки нет (Все метки)

Уважаемые знатоки,
в первом GetPixel корды верхнего левого угла иконки поплавка (певая вкладка, опять таки вверху слева), а во втором верхний левый пиксель собственно игры. Почему первый иф равен тру, а второй - нет?
C++
1
2
3
4
5
6
7
8
if (GetPixel(GetDC(hwnd),6,27)==RGB(60,106,140)) {
  i=1;
  return;
}
if (GetPixel(GetDC(hwnd),452,82)==RGB(50,42,24)) {
  i=1;
  return;
}
[Картинки грузите на форум, в формате JPG или PNG]
GetPixel, почему первый иф равен тру, а второй - нет

координаты второго Getpixel сверял вручную, относительно первого GetPixel, поэтому по идее все должно быть верно, но...

Добавлено через 2 часа 9 минут
up
все точки внутри флешки-черные...как узнать реальный цвет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.06.2012, 04:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос GetPixel, почему первый иф равен тру, а второй - нет (C++):

Массив: Первый способ сортировки массива работает, а второй - нет, почему? - C++
Первый способ работает, а второй нет #pragma hdrstop #pragma argsused #ifdef _WIN32 #include <tchar.h> #include <windows.h>...

Первый элемент массива равен 1 а остальные почему-то нулю - C++
Здраствуйте есть вопрос к задаче: дана программу реализовывающую вычисление последовательности Фиббоначи до определённого номера...

алгоритмом Определить номера строк, в которых первый элемент равен последнему - C++
Помогите с алгоритмом Вот сама задача: Дана матрица размером МxN. Определить номера строк, в которых первый элемент равен...

первый gets() игнорируется, а второй работает - C++
Здравствуйте! Не могу понять почему первый gets() игнорируется, вернее в него записывается '\n'; #include<iostream> ...

Выяснить, является ли заданное число m членом геометрической прогрессии, первый член которой равен g, а знаменатель – z. - C++
очень нужен код в С++(консольном)

Выяснить, является ли заданное число m членом геометрической прогрессии, первый член которой равен g, а знаменатель – z. - C++
Выяснить, является ли заданное число m членом геометрической прогрессии, первый член которой равен g, а знаменатель – z. помогите...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
18.06.2012, 07:04 #2
возможно ты не с тем цветом сравниваешь,получи сначала цвета обоих пикселей,а потом сравнивай с ними уже
morro
2 / 2 / 0
Регистрация: 10.04.2012
Сообщений: 13
18.06.2012, 15:13  [ТС] #3
нет, там все верно. проблема в том, что
C++
1
2
3
int r = GetRValue(GetPixel(GetDC(hwnd),900,300));
int g = GetGValue(GetPixel(GetDC(hwnd),900,300));
int b = GetBValue(GetPixel(GetDC(hwnd),900,300));
люой точки игры возвращает черный цвет
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
18.06.2012, 15:45 #4
а ты не менял протяжённость окна?может быть она меньше 900 в каком-то направлении,вот и нельзя получить цвет этого пикселя
morro
2 / 2 / 0
Регистрация: 10.04.2012
Сообщений: 13
18.06.2012, 18:17  [ТС] #5
все, эта проблема решилась копированием нужного пикселя в контекст (CreateCompatibleDC итд), но теперь другой вопрос: когда я определил, что нужного пикселя нет-нужно отправить сообщение (VK_SPACE), и это тоже выполняется, но загвоздка в том, что VK_SPACE передается собственно Опере, а не флеш-приложению
C++
1
hwnd = FindWindow(NULL, L"Рыбное место - ловим рыбу с друзьями! - Opera");
C++
1
2
3
4
5
6
7
8
9
10
while(1){
                memdc=spizd(720,635);
                if (GetPixel(memdc,0,0)==RGB(125,192,9))
                {Sleep(100);}
                else {
                    PostMessage(hwnd, WM_KEYDOWN, VK_SPACE, 0);
                    Sleep(100);
                    PostMessage(hwnd, WM_KEYUP, VK_SPACE, 0);
                    }
                }
alexey31415
59 / 59 / 3
Регистрация: 16.05.2010
Сообщений: 632
19.06.2012, 10:17 #6
вам нужно отправлять сообщение флэш-приложению?я думаю,что оно является дочерним окном и наверняка есть способ определить дочерние окна
morro
2 / 2 / 0
Регистрация: 10.04.2012
Сообщений: 13
19.06.2012, 16:44  [ТС] #7
так и есть, но spy++ говорит что у него(дочернего окна оперы) тоже есть дочернее окно. С помощью другой софтины определил, что оба окна подсвечивают одну область, но реагирует на сообщения только второе(самое нижнее в ветке), хендл которого никак не получается узнать.
GetPixel, почему первый иф равен тру, а второй - нет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2012, 16:44
Привет! Вот еще темы с ответами:

Сформировать массив: первый элемент равен A, второй равен B, каждый последующий - равен сумме всех предыдущих - PascalABC.NET
Помогите с задачей . Условие : даны числа А и В. Сформировать и вывести целочисленный массив размера N, первый элемент которого равен A,...

Заполнить массив по правилу: первый элемент массива равен единице, второй равен N, третий – двум, четвертый равен N – 1 и так далее. - Turbo Pascal
Задали написать программу, которая заполнит массив A из N элементов последовательными целыми числами от 1 до N по следующему принципу: ...

Вывести массив размера N, первый элемент которого равен А, второй В, а каждый предыдущий элемент равен сумме всех предыдущих - Pascal ABC
Данны целые числа N(<2), А и В. сформулировать и вывести целочисленный массив размера N, первый элемент которого равен А, второй В, а...

Первый запуск:Показываем меседже бокс.Второй:нет - C#
Нужно сделать так: Запускаем приложение.Нам выходит месседже бокс с текстом любым. В реестр что-нибудь добавляется. И пир последующих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
19.06.2012, 16:44
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru