TX Library Help – Version: 00173a, Revision: 173
 ALL  Windows graphics in a sandbox

Поддержка Мыши!

Работа с Мышью!

POINT txMousePos () tx_nodiscard
 Возвращает позицию Мыши!
double txMouseX () tx_nodiscard
 Возвращает X-Координату Мыши!
double txMouseY () tx_nodiscard
 Возвращает Y-Координату Мыши!
unsigned txMouseButtons () tx_nodiscard
 Возвращает состояние Кнопок Мыши!
Mouse & txCatchMouse (bool shouldEat=true)
 Ловит Мышь!

Функции

POINT txMousePos ( )

Возвращает позицию Мыши!

Возвращает:
Позиция Мыши! как структура POINT, отсчитывающаяся от левого верхнего угла окна.
Заметки:
Если окна TXLib нет   (какой ужас!),   то координаты отсчитываются от верхнего левого угла экрана.
Предупреждения:
Будьте осторожны в многофайловом проекте. Если эта функция вызвана не из того файла, где открыто окно, координаты будут отсчитываться от верхнего левого угла экрана, а не от угла окна. См. замечания по многофайловому проекту для функции txCreateWindow().
См. также:
txMouseX(), txMouseY(), txMousePos(), txMouseButtons()
Примеры использования:
          RECT area = { 100, 100, 110, 110 };

          while (txMouseButtons() != 1)
              {
              if (In (txMousePos(), area)) txTextOut (100, 100, "http://vk.com/TiShtoTamDelaesh?!");
              txSleep (0);
              }
double txMouseX ( )

Возвращает X-Координату Мыши!

Возвращает:
X-координата Мыши!, отсчитывающаяся от левого верхнего угла окна.
Заметки:
Если окна TXLib нет   (какой ужас!),   то координаты отсчитываются от верхнего левого угла экрана.
Предупреждения:
Будьте осторожны в многофайловом проекте. См. замечание для функции txMousePos().
См. также:
txMouseX(), txMouseY(), txMousePos(), txMouseButtons()
Примеры использования:
          while (txMouseButtons() != 1)
              {
              txCircle (txMouseX(), txMouseY(), 20);
              txSleep (0);
              }
double txMouseY ( )

Возвращает Y-Координату Мыши!

Возвращает:
Y-координата Мыши!, отсчитывающаяся от левого верхнего угла окна.
Заметки:
Если окна TXLib нет   (какой ужас!),   то координаты отсчитываются от верхнего левого угла экрана.
Предупреждения:
Будьте осторожны в многофайловом проекте. См. замечание для функции txMousePos().
См. также:
txMouseX(), txMouseY(), txMousePos(), txMouseButtons()
Примеры использования:
          while (txMouseButtons() != 1)
              {
              txCircle (txMouseX(), txMouseY(), 20);
              txSleep (0);
              }
unsigned txMouseButtons ( )

Возвращает состояние Кнопок Мыши!

Возвращает:
Состояние Кнопок Мыши!

В возвращаемом значении выставленный в единицу 1-й (младший) бит означает нажатую левую Кнопку Мыши!, 2-й -- правую Кнопку.
Например, возвращенное число 3 (двоичное 11) означает одновременное нажатие левой и правой Кнопок.

Предупреждения:
Если окно TXLib или соответствующее ему консольное окно неактивно, то возвращается 0.

Будьте осторожны в многофайловом проекте. Если эта функция вызвана не из того файла, где открыто окно, будет всегда возвращаться 0. См. замечания по многофайловому проекту для функции txCreateWindow().

Если нужно проверить состояние Кнопок Мыши! в любом случае, то можно пользоваться функцией GetAsyncKeyState() с аргументами VK_LBUTTON, VK_RBUTTON или VK_MBUTTON. Старший бит 16-битового слова (битовая маска 0x8000) покажет состояние соответствующей Кнопки Мыши! (см. пример).
См. также:
txMouseX(), txMouseY(), txMousePos(), txMouseButtons()
Примеры использования:
          while (txMouseButtons() != 3)
              {
              if (txMouseButtons() & 1) txCircle (txMouseX(), txMouseY(), 20);
              if (txMouseButtons() & 2) txLine   (txMouseX(), txMouseY(), 0, 0);

              if (GetAsyncKeyState (VK_LBUTTON) & 0x8000) printf ("VK_LBUTTON ");

              txSleep (0);
              }
Mouse& txCatchMouse ( bool  shouldEat = true)

Ловит Мышь!

Аргументы:
shouldEatTo eat, or not to eat: that is the question.
Возвращает:
Пойманная Мышь!
Заметки:
Эту функцию можно применять, только если Вы -- Кот. =^..^=
Поэтому в текущей версии она не реализована :)
См. также:
txMouseX(), txMouseY(), txMousePos(), txMouseButtons()
Примеры использования:
          void CatsLife()
              {
              try
                  {
                  while (true)
                      {
                      Mouse mouse = txCatchMouse();
                      Eat (mouse);
                      txSleep();
                      }
                  }

              catch (Mouse& mouse)
                  {
                  Eat (mouse);  // Just do eat (R). Anyway
                  }
              }