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

Поиск координат пикселя в окне. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ссылочный тип http://www.cyberforum.ru/cpp-beginners/thread369790.html
Есть ли разница и как лучше писать void sum(int &a, int &b); или void sum(int a ,int b); Что лучше, и почему? Обьясните
C++ Нужен пример шейкерной сортировки Написать программу шейкерной сортировки по возрастанию.Алгоритм представляет собой улучшеную пузырьковую сортировку , использующий "всплытие легкого" и "погружение тяжелого" элементов. Меняются одновременно и правая и левая границы массива.Никак не могу понять что делать.. http://www.cyberforum.ru/cpp-beginners/thread369785.html
C++ Использование функции.
помогите переделать программу нужно использовать функцию #include <math.h> #include <iostream.h> #include<fstream.h> main() { ifstream fin("1.in");
C++ Обратный метод пузырька
Написать программу сортировки массива по возрастанию методом "погружения " наибольшего ("тяжелого") элемента(метод пузырька в обратную сторону ). Непонятно как это сделать..
C++ Фибоначиев поиск http://www.cyberforum.ru/cpp-beginners/thread369779.html
Дано множество из N=18 элементов.Найти элемент(ключ) к=33. Элементы массива вводить с клавиатуры по возрастанию. как это сделать с помощью Фибоначиева поиска?? Ребят кто знает?Просто вообще не ясно, что делать..
C++ Определить минимальное значение n>0, для которого очередное слагаемое по модулю не превышает eps Формулировка задания: "Определить минимальное значение n>0, для которого очередное слагаемое по модулю не превышает eps>0 при нахождении результата согласно формуле" P.S.: формула на картинке во вложениях Еще бы хотелось, если это возможно, поподробнее узнать про математическую постановку задачи. Заранее спасибо! подробнее

Показать сообщение отдельно
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.10.2011, 23:00     Поиск координат пикселя в окне.
Bloodrinker, вот пример поиск по цвету пикселя, если пиксель найден с указанным цветом, показать координаты пикселя на форме, медленный вариант.
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
BOOL  SearchPixelPos(HWND hwnd, COLORREF color, LPPOINT pos) {
  RECT rect;
  HDC dc = GetDC(hwnd);
  GetClientRect(hwnd, &rect);
  for(long y = 0L; y < rect.bottom; y++) {
     for(long x = 0L; x < rect.right; x++) {
         if( GetPixel(dc, x, y) == color) {
               ReleaseDC(hwnd, dc);
               pos->x = x;
               pos->y = y;
               return TRUE;
          }
      }
  }
  ReleaseDC(hwnd, dc);
  return FALSE;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    WCHAR buf[64];
    POINT pos;
    HDC dc;
    switch (message) 
    {
     case WM_PAINT: 
            dc = BeginPaint(hWnd, &ps);
            SetPixel(dc, 100, 100, RGB(255, 0, 0));  // будем искать вот этот красный пиксель
            EndPaint(hWnd, &ps);
        break;
    case WM_LBUTTONDOWN: 
         // поиск красного пикселя
         if( SearchPixelPos(hWnd, RGB(255, 0, 0), &pos) ) {
                wsprintfW(buf, L"Пиксель найден: X: %d, Y: %d", pos.x, pos.y);
                MessageBoxW(hWnd, buf, L":)", MB_OK | MB_ICONINFORMATION);
          } else
                MessageBoxW(hWnd, L"Указанный цвет-пикселя не был найден.", L"...", MB_OK | MB_ICONEXCLAMATION);
        break;
     case WM_DESTROY:
          PostQuitMessage(0);
        break;
       default: return DefWindowProc(hWnd, message, wParam, lParam);
   }
   return 0;
}
 
Текущее время: 13:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru