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

Рисование

Инициализация библиотеки

HWND txCreateWindow (double sizeX, double sizeY, bool centered=true)
 Создание окна рисования
HDC & txDC () tx_nodiscard
 Возвращает холст (дескриптор контекста рисования, HDC) окна рисования TXLib.
RGBQUAD * txVideoMemory () tx_nodiscard
 Возвращает буфер памяти, связанный с холстом (HDC) TXLib.
bool txSetDefaults (HDC dc=txDC())
 Установка параметров рисования по умолчанию.
bool txOK () tx_nodiscard
 Проверка правильности работы библиотеки
POINT txGetExtent (HDC dc=txDC()) tx_nodiscard
 Возвращает размер окна, картинки или холста в виде структуры POINT.
int txGetExtentX (HDC dc=txDC()) tx_nodiscard
 Возвращает ширину окна или холста.
int txGetExtentY (HDC dc=txDC()) tx_nodiscard
 Возвращает высоту окна или холста.
HWND txWindow () tx_nodiscard
 Возвращает дескриптор окна рисования
const char * txVersion () tx_nodiscard
 Возвращает строку с информацией о текущей версии библиотеки.
unsigned txVersionNumber () tx_nodiscard
 Возвращает номер версии библиотеки.
const char * txGetModuleFileName (bool fileNameOnly=true) tx_nodiscard
 Возвращает имя исполняемого файла или изначальный заголовок окна TXLib.

Установка цветов и режимов рисования

enum  txColors {
  TX_BLACK = RGB ( 0, 0, 0),
  TX_BLUE = RGB ( 0, 0, 128),
  TX_GREEN = RGB ( 0, 128, 0),
  TX_CYAN = RGB ( 0, 128, 128),
  TX_RED = RGB (128, 0, 0),
  TX_MAGENTA = RGB (128, 0, 128),
  TX_BROWN = RGB (128, 128, 0),
  TX_ORANGE = RGB (255, 128, 0),
  TX_GRAY = RGB (160, 160, 160),
  TX_DARKGRAY = RGB (128, 128, 128),
  TX_LIGHTGRAY = RGB (192, 192, 192),
  TX_LIGHTBLUE = RGB ( 0, 0, 255),
  TX_LIGHTGREEN = RGB ( 0, 255, 128),
  TX_LIGHTCYAN = RGB ( 0, 255, 255),
  TX_LIGHTRED = RGB (255, 0, 128),
  TX_LIGHTMAGENTA = RGB (255, 0, 255),
  TX_PINK = RGB (255, 128, 255),
  TX_YELLOW = RGB (255, 255, 128),
  TX_WHITE = RGB (255, 255, 255),
  TX_TRANSPARENT = 0xFFFFFFFF,
  TX_NULL = TX_TRANSPARENT,
  TX_BLM = TX_BLACK,
  TX_white = TX_WHITE,
  TX_HUE = 0x04000000,
  TX_SATURATION = 0x05000000,
  TX_LIGHTNESS = 0x06000000
}
 

Названия предопределенных цветов.

Подробнее...
COLORREF RGB (int red, int green, int blue)
 Создает (смешивает) цвет из трех базовых цветов (компонент).
HPEN txSetColor (COLORREF color, double thickness=1, HDC dc=txDC())
 Устанавливает текущий цвет и толщину линий, цвет текста.
COLORREF txGetColor (HDC dc=txDC()) tx_nodiscard
 Возвращает текущий цвет линий и текста.
HBRUSH txSetFillColor (COLORREF color, HDC dc=txDC())
 Устанавливает текущий цвет заполнения фигур.
COLORREF txGetFillColor (HDC dc=txDC()) tx_nodiscard
 Возвращает текущий цвет заполнения фигур.
unsigned txExtractColor (COLORREF color, COLORREF component) tx_nodiscard
 Извлекает цветовую компоненту (цветовой канал) из смешанного цвета.
COLORREF txRGB2HSL (COLORREF rgbColor) tx_nodiscard
 Преобразует цвет из формата RGB в формат HSL.
COLORREF txHSL2RGB (COLORREF hslColor) tx_nodiscard
 Преобразует цвет из формата HSL в формат RGB.

Рисование фигур

bool txClear (HDC dc=txDC())
 Стирает холст текущим цветом заполнения.
bool txSetPixel (double x, double y, COLORREF color, HDC dc=txDC())
 Рисует пиксель (точку на экране).
COLORREF txGetPixel (double x, double y, HDC dc=txDC()) tx_nodiscard
 Возвращает текущий цвет точки (пикселя) на экране.
bool txLine (double x0, double y0, double x1, double y1, HDC dc=txDC())
 Рисует линию.
bool txRectangle (double x0, double y0, double x1, double y1, HDC dc=txDC())
 Рисует прямоугольник.
bool txPolygon (const POINT points[], int numPoints, HDC dc=txDC())
 Рисует ломаную линию или многоугольник.
bool txEllipse (double x0, double y0, double x1, double y1, HDC dc=txDC())
 Рисует эллипс.
bool txCircle (double x, double y, double r)
 Рисует окружность или круг.
bool txArc (double x0, double y0, double x1, double y1, double startAngle, double totalAngle, HDC dc=txDC())
 Рисует дугу эллипса.
bool txPie (double x0, double y0, double x1, double y1, double startAngle, double totalAngle, HDC dc=txDC())
 Рисует сектор эллипса.
bool txChord (double x0, double y0, double x1, double y1, double startAngle, double totalAngle, HDC dc=txDC())
 Рисует хорду эллипса.
bool txFloodFill (double x, double y, COLORREF color=TX_TRANSPARENT, DWORD mode=FLOODFILLSURFACE, HDC dc=txDC())
 Заливает произвольный контур текущим цветом заполнения.
bool txTriangle (double x1, double y1, double x2, double y2, double x3, double y3)
 Функция, которая должна бы рисовать треугольник.
void txDrawMan (int x, int y, int sizeX, int sizeY, COLORREF color, double handL, double handR, double twist, double head, double eyes, double wink, double crazy, double smile, double hair, double wind)
 Рисует человечка.

Работа с текстом

bool txTextOut (double x, double y, const char text[], HDC dc=txDC())
 Рисует текст.
bool txDrawText (double x0, double y0, double x1, double y1, const char text[], unsigned format=DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_WORD_ELLIPSIS, HDC dc=txDC())
 Рисует текст, размещенный в прямоугольной области.
HFONT txSelectFont (const char name[], double sizeY, double sizeX=-1, int bold=FW_DONTCARE, bool italic=false, bool underline=false, bool strikeout=false, double angle=0, HDC dc=txDC())
 Выбирает текущий шрифт, его размер и другие атрибуты.
SIZE txGetTextExtent (const char text[], HDC dc=txDC()) tx_nodiscard
 Вычисляет размеры текстовой надписи.
int txGetTextExtentX (const char text[], HDC dc=txDC()) tx_nodiscard
 Вычисляет ширину текстовой надписи.
int txGetTextExtentY (const char text[], HDC dc=txDC()) tx_nodiscard
 Вычисляет высоту текстовой надписи.
unsigned txSetTextAlign (unsigned align=TA_CENTER|TA_BASELINE, HDC dc=txDC())
 Устанавливает текущее выравнивание текста (влево/вправо/по центру).
LOGFONT * txFontExist (const char name[]) tx_nodiscard
 Ищет шрифт по его названию.

Рисование в памяти (на "виртуальном холсте") и загрузка изображений

HDC txCreateCompatibleDC (double sizeX, double sizeY, HBITMAP bitmap=NULL, RGBQUAD **pixels=NULL) tx_nodiscard
 Создает дополнительный холст (контекст рисования, Device Context, DC) в памяти.
HDC txCreateDIBSection (double sizeX, double sizeY, RGBQUAD **pixels=NULL) tx_nodiscard
 Создает аппаратно-независимый дополнительный холст (контекст рисования, Device Context, DC) в памяти с возможностью прямого доступа к нему как к массиву.
HDC txLoadImage (const char filename[], int sizeX=0, int sizeY=0, unsigned imageType=IMAGE_BITMAP, unsigned loadFlags=LR_LOADFROMFILE) tx_nodiscard
 Загружает из файла изображение в формате BMP. Делает это довольно медленно.
bool txDeleteDC (HDC dc)
 Уничтожает холст (контекст рисования, DC) в памяти.
bool txBitBlt (HDC destImage, double xDest, double yDest, double width, double height, HDC sourceImage, double xSource=0, double ySource=0, unsigned operation=SRCCOPY)
 Копирует изображение с одного холста (контекста рисования, DC) на другой.
bool txBitBlt (double xDest, double yDest, HDC sourceImage, double xSource=0, double ySource=0)
 Копирует изображение на экран.
bool txTransparentBlt (HDC destImage, double xDest, double yDest, double width, double height, HDC sourceImage, double xSource=0, double ySource=0, COLORREF transColor=TX_BLACK)
 Копирует изображение с одного холста (контекста рисования, DC) на другой с учетом прозрачности.
bool txTransparentBlt (double xDest, double yDest, HDC sourceImage, COLORREF transColor=TX_BLACK, double xSource=0, double ySource=0)
 Копирует изображение на экран с учетом прозрачности.
bool txAlphaBlend (HDC destImage, double xDest, double yDest, double width, double height, HDC sourceImage, double xSource=0, double ySource=0, double alpha=1.0)
 Копирует изображение с одного холста (контекста рисования, DC) на другой с учетом полупрозрачности.
bool txAlphaBlend (double xDest, double yDest, HDC sourceImage, double xSource=0, double ySource=0, double alpha=1.0)
 Копирует изображение на экран с учетом полупрозрачности.
HDC txUseAlpha (HDC image)
 Пересчитывает цвета пикселей с учетом прозрачности (переводит цвета в формат Premultiplied Alpha).
bool txSaveImage (const char filename[], HDC dc=txDC())
 Сохраняет в файл изображение в формате BMP.

Вспомогательные функции

double txSleep (double time=0)
 Задерживает выполнение программы на определенное время.
int txBegin ()
 Блокирует обновление изображения окна, во избежание мигания.
int txEnd ()
 Разблокирует обновление окна, заблокированное функцией txBegin().
void txRedrawWindow ()
 Обновляет изображение в окне TXLib вручную.
bool txDestroyWindow (HWND wnd=txWindow())
 Уничтожает окно.
double txQueryPerformance () tx_nodiscard
 Оценивает скорость работы компьютера.
double txGetFPS (int minFrames=txFramesToAverage) tx_nodiscard
 Выдает количество кадров (вызовов этой функции) в секунду.
int txUpdateWindow (int update=true)
 Разрешает или запрещает автоматическое обновление изображения в окне.
bool txSelectObject (HGDIOBJ obj, HDC dc=txDC())
 Устанавливает текущий активный объект GDI.
bool txIDontWantToHaveAPauseAfterMyProgramBeforeTheWindowWillClose_AndIWillNotBeAskingWhereIsMyPicture ()
 Делает нечто иногда удобное. См. название функции.

Функции консоли

unsigned txSetConsoleAttr (unsigned colors=0x07)
 Устанавливает цветовые атрибуты консоли.
unsigned txGetConsoleAttr () tx_nodiscard
 Возвращает текущие цветовые атрибуты консоли.
bool txClearConsole ()
 Стирает текст консоли.
POINT txSetConsoleCursorPos (double x, double y)
 Устанавливает позицию мигающего курсора консоли.
POINT txGetConsoleCursorPos ()
 Возвращает позицию мигающего курсора консоли.
POINT txGetConsoleExtent ()
 Возвращает размер консоли.
POINT txGetConsoleFontSize () tx_nodiscard
 Возвращает размеры шрифта консоли.
bool txTextCursor (bool blink=true)
 Запрещает или разрешает рисование мигающего курсора в окне.

Перечисления

enum txColors

Названия предопределенных цветов.

См. TX_BLACK, TX_BLUE и другие цвета в списке выше.

Если кому-то эти цвета не нравятся (что неудивительно), всегда можно сделать свои с помощью RGB(). См. пример ниже.

См. также:
txSetColor(), txSetFillColor(), txGetColor(), txGetFillColor(), txGetPixel(), RGB()
Примеры использования:
          #include "TXLib.h"

          const COLORREF MY_DEEP_ROMANTIC_BLUE = RGB (  0,   0, 129),
                         MY_SHINING_MOONLIGHT  = RGB (128, 255,  64);
          ...

          txSetColor     (TX_YELLOW);              // Устанавливаем желтый цвет линий
          txSetFillColor (TX_NULL);                // Заливка фигур будет прозрачная

          txSetFillColor (MY_DEEP_ROMANTIC_BLUE);  // А.И. Куинджи, "Лунная ночь на Днепре"
          txSetColor     (MY_SHINING_MOONLIGHT);   // http://tanais.info/art/pic/kuindzhi1.html
Элементы перечислений:
TX_BLACK 

Черный цвет.

TX_BLUE 

Темно-синий цвет. Плохо виден.

TX_GREEN 

Зеленый цвет.

TX_CYAN 

Бирюзовый цвет.

TX_RED 

Темно-красный цвет. Слишком темный.

TX_MAGENTA 

Темно-малиновый цвет.

TX_BROWN 

Коричневый цвет. Некрасивый. Do it yourself with RGB().

TX_ORANGE 

Оранжевый цвет.

TX_GRAY 

Серый цвет.

TX_DARKGRAY 

Темно-серый цвет.

TX_LIGHTGRAY 

Светло-серый цвет.

TX_LIGHTBLUE 

Светло-синий цвет.

TX_LIGHTGREEN 

Светло-зеленый цвет.

TX_LIGHTCYAN 

Светло-бирюзовый цвет.

TX_LIGHTRED 

Светло-красный цвет. Не самого лучшего оттенка.

TX_LIGHTMAGENTA 

Светло-малиновый цвет. Еще менее лучшего оттенка.

TX_PINK 

Розовый гламурный :)

TX_YELLOW 

Желтый цвет.

TX_WHITE 

Белый цвет.

TX_TRANSPARENT 

Прозрачный цвет. Отключает рисование. //-V112.

TX_NULL 

Прозрачный цвет. Отключает рисование.

TX_BLM 

Альтернативный политкорректный трендовый цвет!

TX_white 

BLM-compatible name for this color.

TX_HUE 

Цветовой тон цвета в модели HSL, [0; 255].

TX_SATURATION 

Насыщенность цвета в модели HSL, [0; 255].

TX_LIGHTNESS 

Светлота цвета в модели HSL, [0; 255].

См. определение в файле TXLib.h строка 1460


Функции

HWND txCreateWindow ( double  sizeX,
double  sizeY,
bool  centered = true 
)

Создание окна рисования

Аргументы:
sizeXРазмер окна по горизонтали (в пикселях).
sizeYРазмер окна по вертикали (в пикселях).
centeredЦентрирование окна на дисплее. Необязательно. Если не указано, то окно центрируется.
Возвращает:
Дескриптор (системный номер) окна TXLib. Если окно не создано, возвращается NULL.
Заметки:
Устанавливаются параметры рисования по умолчанию, см. функцию txSetDefaults().
Предупреждения:
Если используется многофайловый проект (с раздельной компиляцией), то графические функции TXLib, вызванные из файла проекта, будут работать только с тем окном, которое создано в этом же файле проекта. Если проект состоит, скажем, из файлов main.cpp и game.cpp, и в файле main.cpp создается графическое окно, то функции из game.cpp не смогут рисовать в нем. (Однако game.cpp сможет создать свое собственное окно.)
Если такой программе нужно одно окно, то в проект следует включить файл, ответственный за рисование, скажем, graphics.cpp, и выводить графику только через функции этого файла. Такой файл (или библиотеку) в больших проектах часто называют графическим движком.

Это влияет не только на фунции рисования, но и на такие функции, как txMouseX(), txMouseY(), txMousePos() и другие, прямо или косвенно зависящие от создания окна рисования.

То же касается и использования TXLib в DLL.
Заметки:
Вспомогательные окна могут создаваться по одному на каждый файл многофайлового проекта или загруженную DLL. Для закрытия вспомогательных окон используется txDestroyWindow(). Для закрытия главного надо выйти из main().
Предупреждения:
Одновременное создание нескольких окон не потокобезопасно (not thread-safe).

Многооконная программа на TXLib тормозит, да и однооконная тоже не отличается высокой скоростью. Чтобы избавиться от этого, бросьте TXLib и используйте другие оконные библиотеки: Qt, wxWidgets, GTK+ и т.д., или библиотеки, специально разработанные для создания игр: SFML (она простая), SDL и другие. Вы можете написать и свою собственную оконную библиотеку, основанную на OpenGL   и получится SFML или SDL:),   или DirectX. Помните, что цель TXLib -- облегчить первые шаги, но потом стать ненужной.
См. также:
txOK(), txWindow(), txDC(), txVideoMemory(), _txWindowStyle, TX_CONSOLE_MODE, TX_CONSOLE_FONT, _txCursorBlinkInterval, _txWindowUpdateInterval, _TX_NOINIT, _TX_ALLOW_TRACE, TX_TRACE
Примеры использования:
          txCreateWindow ( 800, 600);         // Окно  800х600,    центрировано
          txCreateWindow (1024, 768, false);  // Окно 1024х768, не центрировано
HDC& txDC ( )

Возвращает холст (дескриптор контекста рисования, HDC) окна рисования TXLib.

Возвращает:
Дескриптор (системный номер, handler) контекста рисования (device context, DC) холста TXLib (TXLib HDC).
Заметки:
Возвращаемый дескриптор -- не оконный контекст рисования окна TXLib. TXLib реализует двойную буферизацию. Все рисовательные действия происходят со скрытым HDC, находящемся в памяти, и его содержимое периодически автоматически копируется на экран. Это иногда приводит к мерцанию. Автоматическое копирование можно выключить функцией txBegin() и обратно включить функцией txEnd(), в этом случае содержимое окна можно перерисовать функциями txRedrawWindow() или txSleep().

Дополнительную информацию об автоматическом обновлении см. в функциях txBegin(), txEnd(), txUpdateWindow(), txRedrawWindow() и txSleep().
Этот HDC возвращается в виде ссылки, что позволяет подменить его. Тогда TXLib будет периодически копировать на экран изображение уже из вашего буфера. Перед подменой надо сохранить старый дескриптор или освободить его с помощью txDeleteDC(). Во время подмены рисование должно быть заблокировано с помощью txLock() и после разблокировано с помощью txUnlock().
См. также:
txWindow(), txBegin(), txEnd(), txLock(), txUnlock(), txGDI()
Примеры использования:
          txBitBlt (txDC(),   0,   0, 100, 100, txDC(), 0, 0);
          txBitBlt (txDC(), 100,   0, 100, 100, txDC(), 0, 0);
          txBitBlt (txDC(), 0,   100, 100, 100, txDC(), 0, 0);
          txBitBlt (txDC(), 100, 100, 100, 100, txDC(), 0, 0);
RGBQUAD* txVideoMemory ( )

Возвращает буфер памяти, связанный с холстом (HDC) TXLib.

Возвращает:
Указатель на массив структур RGBQUAD, -- буфера памяти, связанного с HDC холста TXLib.

Прямой доступ к буферу памяти HDC позволяет работать с ним с очень высокой скоростью. Правда, рисовать можно только отдельные пиксели. Это полезно, в основном, если вы пишете собственный графический рендер (так напишите же его!).

Буфер памяти HDC -- двумерный массив, размеры которого соответствуют ширине и высоте холста (HDC). Но он возвращается как указатель на одномерный массив, поэтому двумерную адресацию к нему надо вести вручную.

Заметки:
Кроме того, "Y-ось" этого массива направлена вверх, а не вниз, как в окне TXLib. Поэтому для нужного пикселя его смещение от начала массива нужно рассчитывать с помощью формулы x + (-y + sizeY) * sizeX, где sizeX и sizeY -- размеры окна TXLib. Иначе изображение будет перевернуто вверх ногами.
Предупреждения:
Будьте осторожны, не выходите за границы массива, последствия будут непредсказуемыми.
Заметки:
Во время работы с буфером автоматическое обновление окна TXLib должно быть заблокировано с помощью txLock() и после разблокировано с помощью txUnlock().

HDC TXLib -- не оконный контекст рисования окна TXLib. TXLib реализует двойную буферизацию. Все рисовательные действия происходят со скрытым HDC, находящемся в памяти (его возвращает txGetDC()), и его содержимое периодически автоматически копируется на экран. Это иногда приводит к мерцанию. Автоматическое копирование можно выключить функцией txBegin() и обратно включить функцией txEnd(), в этом случае содержимое окна можно перерисовать функциями txRedrawWindow() или txSleep().

Дополнительную информацию об автоматическом обновлении см. в функциях txBegin(), txEnd(), txUpdateWindow(), txRedrawWindow() и txSleep().
См. также:
txCreateDIBSection(), txDC(), txWindow(), txBegin(), txEnd(), txLock(), txUnlock(), txGDI()
Примеры использования:
          Пример см. в файле PhongDemo.cpp из папки TX\Examples\Demo.
          Также см. пример в помощи по функции txCreateDIBSection().
bool txSetDefaults ( HDC  dc = txDC())

Установка параметров рисования по умолчанию.

Аргументы:
dcДескриптор контекста рисования (холста) для установки параметров. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Параметры по умолчанию:
  • Линии -- цвет белый (TX_WHITE), толщина 1
  • Заливка -- цвет белый (TX_WHITE)
  • Шрифт -- Системный, цвет белый (TX_WHITE)
  • Растровая операция -- копирование цвета (R2_COPYPEN)
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txSelectFont()
Примеры использования:
bool txOK ( )

Проверка правильности работы библиотеки

Возвращает:
Состояние библиотеки: true -- библиотека в порядке, false -- не в порядке.

"Библиотека не в порядке" означает, что ее внутренние данные неверны. Самая простая причина - не открыто окно, однако могут быть и другие проблемы.

См. также:
txCreateWindow()
Примеры использования:
          txCreateWindow (800, 600);
          if (!txOK())
              {
              txMessageBox ("Не смогла создать окно", "Извините", MB_ICONSTOP);
              return;
              }
POINT txGetExtent ( HDC  dc = txDC())

Возвращает размер окна, картинки или холста в виде структуры POINT.

Аргументы:
dcДескриптор контекста рисования (холста) с загруженной или созданной картинкой, размеры которого нужно определить. Необязателен. Если не указан или равен txDC(), возвращаются размеры окна TXLib.
Возвращает:
Размер окна, картинки или холста в виде структуры POINT, содержащей компоненты x и y.
Заметки:
Если окно не создано, возвращается размер экрана.
См. также:
txGetExtentX(), txGetExtentY()
Примеры использования:
          txCreateWindow (800, 600);

          HDC image = txLoadImage ("TX/Wizard/TX Application/VS/HTML/1033/TX Application_resize.bmp");

          POINT center = { txGetExtentX() / 2, txGetExtentY() / 2 };
          POINT size   = txGetExtent (image);

          txBitBlt (center.x,            center.y,            image);  // This is krivo

          txBitBlt (center.x - size.x/2, center.y - size.y/2, image);  // This is centered

          txSetColor (TX_WHITE, 3);
          txSetFillColor (TX_TRANSPARENT);
          txCircle (center.x, center.y, hypot (size.x, size.y) / 2);
          txCircle (center.x, center.y, 10);

          txDeleteDC (image);
int txGetExtentX ( HDC  dc = txDC())

Возвращает ширину окна или холста.

Аргументы:
dcДескриптор контекста рисования (холста), ширина которого возвращается. Необязателен. Если не указан или равен txDC(), возвращаются ширина окна TXLib.
Возвращает:
Ширина окна рисования.
Заметки:
Если окно не создано, возвращается ширина экрана.
См. также:
txGetExtent(), txGetExtentY()
Примеры использования:
          txSetTextAlign (TA_CENTER);
          txTextOut (txGetExtentX() / 2, 100, "Oh, oh, you're in the [army]middle now");
int txGetExtentY ( HDC  dc = txDC())

Возвращает высоту окна или холста.

Аргументы:
dcДескриптор контекста рисования (холста), высота которого возвращается. Необязателен. Если не указан или равен txDC(), возвращается высота окна TXLib.
Возвращает:
Высота окна рисования.
Заметки:
Если окно не создано, возвращается высота экрана.
См. также:
txGetExtent(), txGetExtentX()
Примеры использования:
          void DrawHouse (int height);
          ...
          DrawHouse (txGetExtentY() / 2);
HWND txWindow ( )

Возвращает дескриптор окна рисования

Возвращает:
Дескриптор (системный номер, handler) окна холста.
См. также:
txDC(), txVideoMemory(), txLock(), txUnlock(), txGDI()
Примеры использования:
          SetWindowText (txWindow(), "Новые заголовки -- теперь и в ваших окнах!");
          txMessageBox ("Распишитесь", "Получите", MB_ICONINFORMATION);
COLORREF RGB ( int  red,
int  green,
int  blue 
)

Создает (смешивает) цвет из трех базовых цветов (компонент).

Аргументы:
redКоличество красного цвета в интервале [0; 255].
greenКоличество зеленого цвета в интервале [0; 255].
blueКоличество синего цвета в интервале [0; 255].
Возвращает:
Созданный цвет в формате COLORREF.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txExtractColor(), txRGB2HSL(), txHSL2RGB()
Примеры использования:
          txSetColor (RGB (255, 128, 0));                // Красный + половина зеленого = оранжевый

          int red = 20, green = 200, blue = 20;
          COLORREF color = RGB (red, green, blue);
          txSetFillColor (color);

          const COLORREF SKY_COLOR = RGB (0, 128, 255);  // Создаем константу для нового цвета

          ...
          txSetFillColor (SKY_COLOR);                    // Используем ее
HPEN txSetColor ( COLORREF  color,
double  thickness = 1,
HDC  dc = txDC() 
)

Устанавливает текущий цвет и толщину линий, цвет текста.

Аргументы:
colorЦвет линий и текста, см. txColors, RGB().
thicknessТолщина линий. Необязательна. Если не указана, то 1 пиксель.
dcДескриптор контекста рисования (холста) для установки цвета. Необязателен.
Возвращает:
Перо, созданное при установке цвета. При ошибке возвращается NULL.
См. также:
txSetFillColor(), txGetColor(), txGetFillColor(), txColors, RGB()
Примеры использования:
          txSetColor (TX_YELLOW);             // Цвет линий будет желтым
          txSetColor (RGB (255, 128, 0), 5);  // Оранжевые линии толщиной 5 пикселей

          txSetColor (RGB (255, 255, 0));     // Желтый = Красный + зеленый (другой способ указания цвета)
          txSetColor (RGB (255, 128, 64));    // Нечто оранжевое
COLORREF txGetColor ( HDC  dc = txDC())

Возвращает текущий цвет линий и текста.

Аргументы:
dcДескриптор контекста рисования (холста) для возврата цвета. Необязателен.
Возвращает:
Текущий цвет линий и текста, см. txColors, RGB().
См. также:
txSetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB()
Примеры использования:
          COLORREF color = txGetColor();
HBRUSH txSetFillColor ( COLORREF  color,
HDC  dc = txDC() 
)

Устанавливает текущий цвет заполнения фигур.

Аргументы:
colorЦвет заполнения, см. txColors, RGB().
dcДескриптор контекста рисования (холста) для установки цвета. Необязателен.
Возвращает:
Кисть, созданная при установке цвета. При ошибке возвращается NULL.
См. также:
txSetColor(), txGetFillColor(), txGetColor(), txColors, RGB()
Примеры использования:
COLORREF txGetFillColor ( HDC  dc = txDC())

Возвращает текущий цвет заполнения фигур.

Аргументы:
dcДескриптор контекста рисования (холста) для возврата цвета. Необязателен.
Возвращает:
Текущий цвет заполнения фигур, см. txColors, RGB().
См. также:
txSetFillColor(), txSetColor(), txGetColor(), txColors, RGB()
Примеры использования:
          COLORREF color = txGetFillColor();
unsigned txExtractColor ( COLORREF  color,
COLORREF  component 
)

Извлекает цветовую компоненту (цветовой канал) из смешанного цвета.

Аргументы:
colorСмешанный цвет.
componentИзвлекаемая компонента, см. txColors.
Возвращает:
Цветовая компонента, см. txColors.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txExtractColor(), txRGB2HSL(), txHSL2RGB()
Примеры использования:
          int red       = txExtractColor (color, TX_RED);
          int lightness = txExtractColor (TX_BLUE, TX_LIGHTNESS);  // В интервале от 0 до 255

          Другие примеры см. в функциях AppearText(), AppearEarth() Примера 5 ("Циклы").
COLORREF txRGB2HSL ( COLORREF  rgbColor)

Преобразует цвет из формата RGB в формат HSL.

Аргументы:
rgbColorПреобразуемый цвет в формате   ЕГЭ   RGB.
Возвращает:
Созданный цвет в виде COLORREF.

Формат RGB определяется как

  • Красная компонента цвета (Red), от 0 до 255.
  • Зеленая компонента цвета (Green), от 0 до 255.
  • Синяя компонента цвета (Blue), от 0 до 255.

Формат HSL определяется как

  • Цветовой тон (Hue), от 0 до 255 (не до 360).
  • Насыщенность (Saturation), от 0 до 255 (не до 100).
  • Светлота (Lightness), от 0 до 255 (не до 100).
Заметки:
Точность преобразования не идеальна. При преобразовании RGB->HSL->RGB может набежать погрешность до 5.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txExtractColor(), txRGB2HSL(), txHSL2RGB()
Примеры использования:
          COLORREF hslColor = txRGB2HSL (TX_RED);
COLORREF txHSL2RGB ( COLORREF  hslColor)

Преобразует цвет из формата HSL в формат RGB.

Аргументы:
hslColorПреобразуемый цвет в формате HSL.
Возвращает:
Созданный цвет в виде COLORREF.

Формат RGB определяется как

  • Красная компонента цвета (Red), от 0 до 255.
  • Зеленая компонента цвета (Green), от 0 до 255.
  • Синяя компонента цвета (Blue), от 0 до 255.

Формат HSL определяется как

  • Цветовой тон (Hue), от 0 до 255 (не до 360).
  • Насыщенность (Saturation), от 0 до 255 (не до 100).
  • Светлота (Lightness), от 0 до 255 (не до 100).
Заметки:
Точность преобразования не идеальна. При преобразовании RGB->HSL->RGB может набежать погрешность до 5.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txExtractColor(), txRGB2HSL(), txHSL2RGB()
Примеры использования:
          int hue = 10, saturation = 128, lightness = 128;
          COLORREF hslColor = RGB (hue, saturation, lightness);
          txSetColor (txHSL2RGB (hslColor));
bool txClear ( HDC  dc = txDC())

Стирает холст текущим цветом заполнения.

Аргументы:
dcДескриптор контекста рисования (холста) для стирания. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.
См. также:
txSetFillColor(), txGetFillColor(), txColors, RGB()
Примеры использования:
          txSetFillColor (TX_BLUE);  // Кто-то хотел синий фон?
          txClear();
bool txSetPixel ( double  x,
double  y,
COLORREF  color,
HDC  dc = txDC() 
)

Рисует пиксель (точку на экране).

Аргументы:
xX-координата точки.
yY-координата точки.
colorЦвет точки, см. txColors, RGB().
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.
См. также:
txGetPixel(), txColors, RGB(), txVideoMemory()
Примеры использования:
          txSetPixel (100, 100, TX_LIGHTRED);  // Красная точка! http://www.google.ru/search?q=коты+и+красная+точка

          txSetPixel (100, 100, RGB (255, 128, 0));
COLORREF txGetPixel ( double  x,
double  y,
HDC  dc = txDC() 
)

Возвращает текущий цвет точки (пикселя) на экране.

Аргументы:
xX-координата точки.
yY-координата точки.
dcДескриптор контекста рисования (холста) для возврата цвета. Необязателен.
Возвращает:
Текущий цвет пикселя, см. txColors, RGB().
См. также:
txSetPixel(), txColors, RGB(), txVideoMemory()
Примеры использования:
          COLORREF color = txGetPixel (100, 200);

          if (txGetPixel (x, y) == TX_RED)
              CarCrash (x, y);     // Mess with the red -- die like the rest
bool txLine ( double  x0,
double  y0,
double  x1,
double  y1,
HDC  dc = txDC() 
)

Рисует линию.

Аргументы:
x0X-координата начальной точки.
y0Y-координата начальной точки.
x1X-координата конечной точки.
y1Y-координата конечной точки.
dcДескриптор контекста рисования (холста) для рисования линии. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линии задается функцией txSetColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txLine (10, 50, 100, 500);  // Правда бедный примерчик, да?
bool txRectangle ( double  x0,
double  y0,
double  x1,
double  y1,
HDC  dc = txDC() 
)

Рисует прямоугольник.

Аргументы:
x0X-координата верхнего левого угла.
y0Y-координата верхнего левого угла.
x1X-координата нижнего правого угла.
y1Y-координата нижнего правого угла.
dcДескриптор контекста рисования (холста) для рисования прямоугольника. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txRectangle (100, 200, 400, 500);

          Win32::RoundRect (txDC(), 100, 200, 400, 500, 30, 30);  // И такое есть. Погуглите "RoundRect function".
bool txPolygon ( const POINT  points[],
int  numPoints,
HDC  dc = txDC() 
)

Рисует ломаную линию или многоугольник.

Аргументы:
pointsМассив структур POINT с координатами точек.
numPointsКоличество точек в массиве.
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor(). Если нужно нарисовать ломаную линию, а не многоугольник, используйте прозрачный цвет заполнения (TX_TRANSPARENT).

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          POINT star[5] = {{150, 300}, {200, 100}, {250, 300}, {100, 200}, {300, 200}};
          txPolygon (star, 5);  // Я кривая звездочка
bool txEllipse ( double  x0,
double  y0,
double  x1,
double  y1,
HDC  dc = txDC() 
)

Рисует эллипс.

Аргументы:
x0X-координата верхнего левого угла прямоугольника, описанного вокруг эллипса.
y0Y-координата верхнего левого угла описанного прямоугольника.
x1X-координата нижнего правого угла описанного прямоугольника.
y1Y-координата нижнего правого угла описанного прямоугольника.
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txEllipse (100, 100, 300, 200);
bool txCircle ( double  x,
double  y,
double  r 
)

Рисует окружность или круг.

Аргументы:
xX-координата центра.
yY-координата центра.
rРадиус.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txCircle (100, 100, 10);
bool txArc ( double  x0,
double  y0,
double  x1,
double  y1,
double  startAngle,
double  totalAngle,
HDC  dc = txDC() 
)

Рисует дугу эллипса.

Аргументы:
x0X-координата верхнего левого угла прямоугольника, описанного вокруг эллипса, содержащего дугу (см. txEllipse).
y0Y-координата верхнего левого угла прямоугольника.
x1X-координата нижнего правого угла прямоугольника.
y1Y-координата нижнего правого угла прямоугольника.
startAngleУгол между направлением оси OX и началом дуги (в градусах).
totalAngleВеличина дуги (в градусах).
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txArc (100, 100, 300, 200, 45, 270);
bool txPie ( double  x0,
double  y0,
double  x1,
double  y1,
double  startAngle,
double  totalAngle,
HDC  dc = txDC() 
)

Рисует сектор эллипса.

Аргументы:
x0X-координата верхнего левого угла прямоугольника, описанного вокруг эллипса, содержащего дугу (см. txEllipse).
y0Y-координата верхнего левого угла прямоугольника.
x1X-координата нижнего правого угла прямоугольника.
y1Y-координата нижнего правого угла прямоугольника.
startAngleУгол между направлением оси OX и началом сектора (в градусах).
totalAngleВеличина сектора (в градусах).
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txPie (100, 100, 300, 200, 0, 180);  // Enter Pacman
bool txChord ( double  x0,
double  y0,
double  x1,
double  y1,
double  startAngle,
double  totalAngle,
HDC  dc = txDC() 
)

Рисует хорду эллипса.

Аргументы:
x0X-координата верхнего левого угла прямоугольника, описанного вокруг эллипса, содержащего дугу (см. txEllipse).
y0Y-координата верхнего левого угла прямоугольника.
x1X-координата нижнего правого угла прямоугольника.
y1Y-координата нижнего правого угла прямоугольника.
startAngleУгол между направлением оси OX и началом хорды (в градусах).
totalAngleВеличина хорды (в градусах).
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет и толщина линий задается функцией txSetColor(), цвет заполнения -- txSetFillColor().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txChord (100, 100, 300, 200, 45, 270);
bool txFloodFill ( double  x,
double  y,
COLORREF  color = TX_TRANSPARENT,
DWORD  mode = FLOODFILLSURFACE,
HDC  dc = txDC() 
)

Заливает произвольный контур текущим цветом заполнения.

Аргументы:
xX-координата точки начала заливки.
yY-координата точки начала заливки.
colorЦвет заливаемой области. Необязателен. Если не указан, то используется TX_TRANSPARENT -- автоопределение цвета.
modeРежим заливки. Необязателен. Если не указан, то используется FLOODFILLSURFACE -- заливка однородного фона.
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет заполнения задается функцией txSetFillColor(). Не рекомендуется для применения, так как работает довольно медленно. Лучше Используйте txPolygon().

Режимы заливки:
FLOODFILLSURFACE   -- Заливать область, указанную цветом color.
FLOODFILLBORDER   -- Заливать до границы, указанной цветом color.
См. также:
txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
Примеры использования:
          txSetFillColor (TX_PINK);
          txLine (100, 200, 150, 100);
          txLine (150, 100, 200, 200);
          txLine (200, 200, 100, 200);
          txFloodFill (150, 150);
bool txTriangle ( double  x1,
double  y1,
double  x2,
double  y2,
double  x3,
double  y3 
)

Функция, которая должна бы рисовать треугольник.

Аргументы:
x1X-координата 1-й точки.
y1Y-координата 1-й точки.
x2X-координата 2-й точки.
y2Y-координата 2-й точки.
x3X-координата 3-й точки.
y3Y-координата 3-й точки.
Возвращает:
Если операция была бы успешна -- true, иначе -- false.
См. также:
txSetFillColor(), txGetFillColor(), txColors, RGB(), txLine(), txRectangle(), txPolygon(), txEllipse(), txCircle(), txArc(), txPie(), txChord()
См. также:
Пример с функциями с параметрами

См. определение в файле TXLib.h строка 2098

void txDrawMan ( int  x,
int  y,
int  sizeX,
int  sizeY,
COLORREF  color,
double  handL,
double  handR,
double  twist,
double  head,
double  eyes,
double  wink,
double  crazy,
double  smile,
double  hair,
double  wind 
)

Рисует человечка.

Это пример функции, которую Вы могли бы написать и сами.

Аргументы:
xX-координата человечка.
yY-координата человечка.
sizeXШирина человечка.
sizeYВысота человечка (также определяет размер головы).
colorЦвет человечка.
handLВысота подъема левой руки (относительно высоты человечка).
handRВысота подъема правой руки (относительно высоты человечка).
twistСмещение спины (относительно ширины человечка).
headВысота подъема головы (относительно высоты человечка).
eyesВеличина глаз (относительно размера головы).
winkМоргание глаз (0 -- оба открыты, -1 -- закрыт левый, +1 -- закрыт правый).
crazyСмещение глаз по вертикали (относительно размера головы).
smileУлыбка (относительно размера головы).
hairДлина волос (относительно размера головы).
windВетер, развевающий волосы (относительно размера головы).
См. также:
txSetFillColor(), txColors, RGB(), txLine(), txCircle()
Примеры использования:
          txCreateWindow (800, 600);

        //-----------+---+----+-----+-----+----------+-----+-----+-----+----+----+----+-----+-----+----+-----
        //           | x |  y |sizeX|sizeY| color    |handL|handR|twist|head|eyes|wink|crazy|smile|hair|wind
        //-----------+---+----+-----+-----+----------+-----+-----+-----+----+----+----+-----+-----+----+-----
        //           |   |    |     |     |          |     |     |     |    |    |    |     |     |    |
           txDrawMan (125, 250, 200,  200, TX_WHITE,    0,    0,    0,   0,   0.8,  0,   0,   1.0,   0,  0);
           txDrawMan (325, 250, 100,  200, TX_YELLOW,   0,    0,    0,   0,   0.8,  0,   0,  -1.0,   2,  0);
           txDrawMan (525, 250, 200,  100, TX_ORANGE,   0,    0,    0,   0,   1.0,  0,  -1,   0.3,   1,  0);
           txDrawMan (725, 250, 100,  100, TX_LIGHTRED, 0,    0,    0,   0,   1.0,  0,   1,  -0.3,   3,  0);

           txDrawMan (125, 550, 200,  200, TX_WHITE,    0.3,  0.3,  0,   0,   0.8, -1,   1,   0.5,   2, -1);
           txDrawMan (325, 550, 100,  200, TX_YELLOW,  -0.5, -0.5,  0,   0.1, 0.8,  1,   0,  -0.5,   3,  5);
           txDrawMan (525, 550, 200,  100, TX_ORANGE,  -0.5,  0.3,  0.2, 0,   0.8, -1,   1,   0.0,  10, -5);
           txDrawMan (725, 550, 100,  100, TX_LIGHTRED, 0.3, -0.5, -0.4, 0,   0.8,  1,  -1,   0.0,   1,  1);

См. определение в файле TXLib.h строка 2172

bool txTextOut ( double  x,
double  y,
const char  text[],
HDC  dc = txDC() 
)

Рисует текст.

Аргументы:
xX-координата начальной точки текста.
yY-координата начальной точки текста.
textТекстовая строка.
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет текста задается функцией txSetColor(), выравнивание (влево/вправо/по центру) -- txSetTextAlign().

См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txSelectFont(), txSetTextAlign(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          txTextOut (100, 100, "Здесь могла бы быть Ваша реклама.");
bool txDrawText ( double  x0,
double  y0,
double  x1,
double  y1,
const char  text[],
unsigned  format = DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_WORD_ELLIPSIS,
HDC  dc = txDC() 
)

Рисует текст, размещенный в прямоугольной области.

Аргументы:
x0X-координата верхнего левого угла области.
y0Y-координата верхнего левого угла области.
x1X-координата нижнего правого угла области.
y1Y-координата нижнего правого угла области.
textТекстовая строка.
formatФлаги форматирования текста. Необязательны. Если не указаны, то используется: центрирование, перенос по словам и добавление многоточия, если надпись не умещается в область.
dcДескриптор контекста рисования (холста) для рисования. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.

Цвет текста задается функцией txSetColor(), выравнивание (влево/вправо/по центру) -- txSetTextAlign().

Заметки:
Не выводит ничего, если координаты идут в неверном порядке (если x0 > x1 или y0 > y1).

Флаги форматирования текста см. в MSDN (http://msdn.com), искать "DrawText Function (Windows)": http://msdn.microsoft.com/en-us/library/dd162498%28VS.85%29.aspx.

Автоматический перенос текста на несколько строк включается, если текст состоит из нескольких строк (есть хотя бы один символ новой строки \n).

Если надо отформатировать текст не по центру, а по левому или правому краю, то не забудьте указать остальные флаги форматирования, если они нужны: DT_VCENTER (вертикальное центрирование) | DT_WORDBREAK (перенос по словам) | DT_WORD_ELLIPSIS (ставить многоточие в конце, если текст не умещается). См. значение флагов по умолчанию.

Заметки:
Вертикальное центрирование работает только для надписей, в которых нет символа новой строки \n.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txTextOut(), txSelectFont(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          txCreateWindow (800, 600);

          txSetColor     (TX_BLACK);
          txSetFillColor (TX_DARKGRAY); Win32::RoundRect (txDC(), 105, 205, 705, 405, 30, 30);
          txSetFillColor (TX_WHITE);    Win32::RoundRect (txDC(), 100, 200, 700, 400, 30, 30);

          txSelectFont ("Arial", 20, 0, FW_BOLD);
          txDrawText   (100, 250, 700, 350, "Котики говорят:  Мяу!,\n"
                                            "Собачки говорят: Гав!,\n\n"
                                            "Программисты говорят: Ты КОММИТ НА ГИТХАБ СДЕЛАЛ?!?!!");
HFONT txSelectFont ( const char  name[],
double  sizeY,
double  sizeX = -1,
int  bold = FW_DONTCARE,
bool  italic = false,
bool  underline = false,
bool  strikeout = false,
double  angle = 0,
HDC  dc = txDC() 
)

Выбирает текущий шрифт, его размер и другие атрибуты.

Аргументы:
nameНазвание шрифта.
sizeYВысота букв (размер по Y).
sizeXШирина букв. Необязательна. Если не указана, то берется 1/3 от высоты.
boldЖирность шрифта (от 0 до 1000). Необязательна. Если не указана, то берется обычный шрифт.
italicКурсив. Необязателен.
underlineПодчеркивание. Необязательно.
strikeoutПеречеркивание. Необязательно.
angleУгол поворота текста (в градусах). Необязателен.
dcДескриптор контекста рисования (холста) для выбора шрифта. Необязателен.
Возвращает:
Выбранный шрифт. Если он не был найден, то устанавливается системный шрифт Windows (SYSTEM_FIXED_FONT, см. MSDN). Существование шрифта можно проверить функцией txFontExist().
См. также:
txTextOut(), txDrawText(), txFontExist()
Примеры использования:
          txSelectFont ("Comic Sans MS", 40);
          txTextOut (100, 100, "И здесь могла бы быть Ваша реклама.");
          txSelectFont ("Comic Sans MS", 40, 10, FW_BOLD, true, false, true, 15);
          txTextOut (100, 200, "Но ее почему-то нет.");
SIZE txGetTextExtent ( const char  text[],
HDC  dc = txDC() 
)

Вычисляет размеры текстовой надписи.

Аргументы:
textТекстовая строка.
dcДескриптор контекста рисования (холста), где планируется разместить надпись. Необязателен.
Возвращает:
Размеры надписи в структуре SIZE.
См. также:
txTextOut(), txSelectFont(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          SIZE size = txGetTextExtent (text);
          txTextOut (100 + size.cx / 2, 200 + size.cy / 2, text);
int txGetTextExtentX ( const char  text[],
HDC  dc = txDC() 
)

Вычисляет ширину текстовой надписи.

Аргументы:
textТекстовая строка.
dcДескриптор контекста рисования (холста), где планируется разместить надпись. Необязателен.
Возвращает:
Ширина надписи.
См. также:
txTextOut(), txSelectFont(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          txTextOut (100 + txGetTextExtentX (text) / 2, 200 + txGetTextExtentY (text) / 2, text);
int txGetTextExtentY ( const char  text[],
HDC  dc = txDC() 
)

Вычисляет высоту текстовой надписи.

Аргументы:
textТекстовая строка.
dcДескриптор контекста рисования (холста), где планируется разместить надпись. Необязателен.
Возвращает:
Высота надписи.
См. также:
txTextOut(), txSelectFont(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          txTextOut (100 + txGetTextExtentX (text) / 2, 200 + txGetTextExtentY (text) / 2, text);
unsigned txSetTextAlign ( unsigned  align = TA_CENTER|TA_BASELINE,
HDC  dc = txDC() 
)

Устанавливает текущее выравнивание текста (влево/вправо/по центру).

Аргументы:
alignФлаги выравнивания. Необязательны. Если не указаны, то используются центрирование по горизонтали.
dcДескриптор контекста рисования (холста), где планируется разместить надпись. Необязателен.
Возвращает:
Предыдущее состояние выравнивания текста.
Флаги выравнивания:
TA_LEFT   Текст выравнивается влево. Точка (X,Y) определяет левую границу текста.
TA_RIGHT   Текст выравнивается вправо. Точка (X,Y) определяет правую границу текста.
TA_CENTER   Текст центрируется по горизонтали относительно точки @ (X,Y).
TA_BASELINE   Точка (X,Y) определяет базовую линию текста.
TA_BOTTOM   Точка (X,Y) определяет нижнюю границу текста.
TA_TOP   Точка (X,Y) определяет верхнюю границу текста.
См. также:
txTextOut(), txSelectFont(), txGetTextExtent(), txGetTextExtentX(), txGetTextExtentY()
Примеры использования:
          txSetTextAlign (TA_RIGHT);
          txTextOut (700, 100, "Чтобы доступ был легок и быстр,");
          txTextOut (700, 150, "Переменную клади в регистр.");
          txSetTextAlign();
LOGFONT* txFontExist ( const char  name[])

Ищет шрифт по его названию.

Аргументы:
nameНазвание шрифта.
Возвращает:
Информация о шрифте в структуре LOGFONT. Если шрифт не найден, возвращает NULL.
См. также:
txTextOut(), txSelectFont()
Примеры использования:
          if (txFontExist ("Comic Sans MS")) txSelectFont ("Comic Sans MS",   30);
          else                               txSelectFont ("Times New Roman", 30);

          txTextOut (100, 100, "Комик ли Санс?");  // google.ru/search?q=philosoraptor
HDC txCreateCompatibleDC ( double  sizeX,
double  sizeY,
HBITMAP  bitmap = NULL,
RGBQUAD **  pixels = NULL 
)

Создает дополнительный холст (контекст рисования, Device Context, DC) в памяти.

Аргументы:
sizeXШирина холста.
sizeYВысота холста.
bitmapBitmap to be associated with DC (optional). If omitted, color bitmap will be created automatically via Win32::CreateDIBSection.
pixelsThis parameter is optional and may be omitted. When bitmap == NULL, a DIBSection will be created (see above) and this parameter will be associated with its pixels colors array pointer. See txCreateDIBSection() function below. Also, txCreateDIBSection() is preferred when using per-pixel transparency. See txVideoMemory() for important notes.
Возвращает:
Системный номер (по-научному – дескриптор, handle), выданный Windows для созданного холста (по-научному – контекста рисования, Device Context, DC). Вместе получается Handle of Device Context == HDC.

После создания на этом холсте можно рисовать, как и на основном окне TXLib, используя параметр dc функций рисования. Созданный холст имеет свои собственные настройки цветов, шрифтов и т.д., отличные от настроек основного окна TXLib. Чтобы увидеть результат рисования, скопируйте изображение холста на экран с помощью функций txBitBlt(), txTransparentBlt() или txAlphaBlend().

Предупреждения:
Созданный контекст затем будет нужно обязательно удалить при помощи txDeleteDC().
When the program will be shutting down, TXLib will try to delete DCs which were not deleted, but this is not guaranteed. При этом удаляется и bitmap, будьте внимательны.
См. также:
txCreateWindow(), txCreateCompatibleDC(), txLoadImage(), txDeleteDC(), txSaveImage(), txGetExtent(), txCreateDIBSection(), txVideoMemory()
Примеры использования:
          HDC save = txCreateCompatibleDC (100, 100);

          txBitBlt (save, 0, 0, 100, 100, txDC(), 0, 0);  // Сохраняем фон

          txTextOut (20, 20, "Boo!");
          txSleep (2000);

          txBitBlt (txDC(), 0, 0, 100, 100, save, 0, 0);  // Текст исчезает

          txDeleteDC (save);
HDC txCreateDIBSection ( double  sizeX,
double  sizeY,
RGBQUAD **  pixels = NULL 
)

Создает аппаратно-независимый дополнительный холст (контекст рисования, Device Context, DC) в памяти с возможностью прямого доступа к нему как к массиву.

Аргументы:
sizeXШирина холста.
sizeYВысота холста.
pixelsУказатель на переменную, которая будет использоваться для доступа к пикселям изображения. Необязателен. Эта переменная должна быть указателем на массив структур RGBQUAD, каждая из которых описывает цвет одного пикселя. Не надо создавать самому этот массив! Его создаст txCreateDIBSection() и вернет через этот указательный параметр. Объявите только указатель и занулите его, потом его адрес передайте в функцию.
Возвращает:
Дескриптор созданного аппаратно-независимого холста (контекста рисования).

После создания на этом холсте можно рисовать, как и на основном окне TXLib, используя параметр dc функций рисования. Созданный холст имеет свои собственные настройки цветов, шрифтов и т.д., отличные от настроек основного окна TXLib. Чтобы увидеть результат рисования, скопируйте изображение холста на экран с помощью функций txBitBlt(), txTransparentBlt() или txAlphaBlend().

Самое важное, что аппаратно-независимые холсты, создаваемые этой функцией, позволяют напрямую и быстро изменять цвета пикселей изображения, а также его прозрачность в каждой точке. См. пример использования.

Для прямого доступа к пикселям холста, как к массиву, надо объявить указатель на массив структур RGBQUAD и передать адрес этого указателя в качестве третьего параметра функции txCreateDIBSection(). Она изменит значение этого указателя так, что он станет указывать на массив цветов пикселей холста.

Массив pixels одномерный, но по сути он описывает двумерное изображение. Поэтому с ним надо работать как с двумерным прямоугольным массивом, физически расположенным в одномерном массиве: вручную вычислять смещение от начала массива до нужного пикселя и после этого адресоваться к массиву. (Так обычно делают, размещая двумерные массивы в динамической памяти.) См. пример использования.

Заметки:
Кроме того, "Y-ось" этого массива направлена вверх, а не вниз, как в окне TXLib. Поэтому для нужного пикселя его смещение от начала массива нужно рассчитывать с помощью формулы x + (-y + sizeY) * sizeX, где sizeX и sizeY -- размеры изображения. Иначе изображение будет перевернуто вверх ногами.

Однако если перед включением TXLib.h в программу будет определен макрос #define _TX_DIB_FIX -1* или #define _TX_DIB_FIX - то этого переворота не будет, ось Y будет направлена снизу вверх.
Предупреждения:
Будьте осторожны, не выходите за границы массива, последствия будут непредсказуемыми.

Созданный контекст затем будет нужно обязательно удалить при помощи txDeleteDC().
When the program will be shutting down, TXLib will try to delete DCs which were not deleted, but this is not guaranteed.
Заметки:
Память под массив RGBQUAD выделять не надо и освобождать его не надо, этим занимается сама txCreateDIBSection() вместе с txDeleteDC().

Аппаратно-независимые холсты -- это контексты устройств, связанные с аппаратно-независимыми растрами (Device Independent Bitmaps, DIB) Windows.
См. также:
txCreateWindow(), txCreateCompatibleDC(), txLoadImage(), txDeleteDC(), txSaveImage(), txGetExtent(), txCreateCompatibleDC()
Примеры использования:
          int main()
              {
              txCreateWindow (800, 600);

              POINT size = txGetExtent();

              txSetFillColor (TX_BLACK);
              txTextCursor (false);
              txBegin();

              HDC src = GetDC (HWND_DESKTOP);                           // Get HDC from Windows Desktop

              RGBQUAD* buf = NULL;                                      // Do NOT actually create the array!
              HDC dc = txCreateDIBSection (size.x, size.y, &buf);
              assert (dc); assert (buf);                                // Here, 'buf' points to an array created
                                                                        // by txCreateDIBSection()
              while (!GetAsyncKeyState (VK_ESCAPE))
                  {
                  txBitBlt (dc, 0, 0, size.x, size.y, src);

                  for (int y = 0; y < size.y; y++)
                  for (int x = 0; x < size.x; x++)
                      {
                      RGBQUAD* color     = & buf [x + y * size.x];      // Get color at (x, y) within image buffer

                      double   r         = hypot (x - size.x/2, y - size.y/2);
                      double   alpha     = sin (0.05 * r) * 0.25 + 0.5;

                      color->rgbReserved = (BYTE) ROUND (255 * alpha);  // Set alpha-channel (transparency)
                      }

                  txUseAlpha (dc) asserted;                             // Premultiply colors with alpha

                  txClear();
                  txAlphaBlend (txDC(), 0, 0, 0, 0, dc);

                  printf ("FPS %.0lf\t\t\r", txGetFPS());
                  txSleep (0);
                  }

              txSaveImage ("TxFilter.bmp", dc);

              txDeleteDC (dc);
              ReleaseDC (HWND_DESKTOP, src);                            // Free Windows Desktop HDC

              return 0;
              }
HDC txLoadImage ( const char  filename[],
int  sizeX = 0,
int  sizeY = 0,
unsigned  imageType = IMAGE_BITMAP,
unsigned  loadFlags = LR_LOADFROMFILE 
)

Загружает из файла изображение в формате BMP. Делает это довольно медленно.

Аргументы:
filenameИмя файла с изображением в формате BMP.
sizeXРазмер загружаемого изображения. Необязателен. Если не указан, используется оригинальный размер рисунка из файла.
sizeYРазмер загружаемого изображения. Необязателен. Если не указан, используется оригинальный размер рисунка из файла.
imageTypeТип загружаемого изображения, см. ниже. Необязателен. Если не указан, загружается рисунок в формате BMP.
loadFlagsФлаги загрузки изображения, см. ниже. Необязательны. Если не указаны, загрузка идет из файла.
Возвращает:
Дескриптор созданного контекста рисования в памяти, с загруженным изображением. Если изображение не загружено (не найден файл, неверный формат файла и т.д.), то NULL.
Предупреждения:
Изображение загружается в автоматически создаваемый контекст рисования в памяти ("виртуальный холст"), который затем будет нужно обязательно удалить при помощи txDeleteDC().

When the program will be shutting down, TXLib will try to delete DCs which were not deleted, but this is not guaranteed.
Заметки:
  1. Изображения поддерживаются только в формате BMP. Если взять файл другого формата, например JPG, и переименовать его со сменой расширения на BMP, то от этого формат не изменится. Такое изображение загружено не будет.

  2. Если функция вернула NULL, то надо прежде всего проверить наличие файла изображения по указанному в программе пути и формат файла. Если путь к файлу не указан (или указан как неполный), то путь отсчитывается от текущей папки программы, которая может не совпадать текущей папкой среды программирования. Текущую папку программы можно посмотреть по команде About в системном меню (она указана там как "Run from").

  3. Если файл по-прежнему не загружается, откройте его в редакторе Microsoft Paint (нажмите <WIN+R> mspaint <ENTER>) или другой программе обработки изображений и сохраните его заново как изображение в формате BMP. Это иногда бывает нужно для файлов, преобразованных из других форматов программами-конверторами или сайтами для преобразования изображений.

  4. Если изображение в файле содержит альфа-канал (информацию о прозрачности), то его цвета должны находиться в формате Premultiplied Alpha. См. замечания к функции txAlphaBlend().

  5. Если изображение в файле с альфа-каналом не находится в формате Premultiplied Alpha, то после вызова txLoadImage() нужно вызвать функцию txUseAlpha(). Однако не надо этого делать, если цвета в файле уже находятся в формате Premultiplied Alpha, иначе картинка станет темнее. Также не надо вызывать txUseAlpha() несколько раз для одного и того же изображения.

  6. Не надо часто загружать одно и то же изображение, особенно в цикле. От этого программа начинает тормозить!
    Загрузите один раз перед циклом, потом используйте много раз. Посмотрите, как это сделано в примере TX\Examples\Tennis\Tennis.cpp.
Типы загружаемых изображений:
IMAGE_BITMAP   Рисунок в формате BMP
IMAGE_CURSOR   Курсор в формате CUR или ANI
IMAGE_ICON   Иконка в формате ICO
Флаги загрузки:
LR_CREATEDIBSECTION   Создает DIB (device-independent bitmap), удобную для прямого доступа к данным
LR_LOADFROMFILE   Загружает из файла (если этот флаг не указан, то загружает из ресурса EXE-файла)
Остальные флаги загрузки   см. на MSDN.com, поиск "LoadImage function".
См. также:
txCreateWindow(), txCreateCompatibleDC(), txLoadImage(), txDeleteDC(), txBitBlt(), txAlphaBlend(), txTransparentBlt(), txSaveImage(), txGetExtent()
Примеры использования:
Пример использования см. в файле TX\Examples\Tennis\Tennis.cpp.
          HDC  background_CopiedFromHelp = txLoadImage ("Resources\\Images\\Background.bmp");

          if (!background_CopiedFromHelp)
              txMessageBox ("Не могу загрузить фон из Background.bmp", "Да, я скопировал это из примера");

          // Не надо часто загружать одно и то же изображение, особенно в цикле -- программа будет тормозить!
          // Загрузите один раз перед циклом, потом используйте много раз.
          // Посмотрите, как сделано в примере TX\Examples\Tennis\Tennis.cpp.

          txBitBlt (txDC(), 0, 0, 800, 600, background_CopiedFromHelp, 0, 0);

          ...
          txDeleteDC (background_CopiedFromHelp);
bool txDeleteDC ( HDC  dc)

Уничтожает холст (контекст рисования, DC) в памяти.

Аргументы:
dcКонтекст рисования для уничтожения.
Если передан указатель на контекст, то после уничтожения по указателю записывается NULL.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Заметки:
Эту функцию нужно обязательно вызывать, если картинка, загруженная с помощью txLoadImage() или виртуальный холст, созданный с помощью txTransparentBlt() или txCreateDIBSection(), больше не нужны. Иначе настанет   полный треш   у Windows могут закончиться свободные дескрипторы HDC, и начнется общее торможение всей работы Windows и проблемы с рисованием во всех программах. Может быть, поосле этого придется перезапускать компьютер.
См. также:
txCreateWindow(), txCreateCompatibleDC(), txLoadImage(), txDeleteDC(), txSaveImage(), txGetExtent(), txCreateDIBSection()
Примеры использования:
Пример использования см. в файле TX\Examples\Tennis\Tennis.cpp.
          HDC  background_CopiedFromHelp = txLoadImage ("Resources\\Images\\Background.bmp");

          if (!background_CopiedFromHelp)
              txMessageBox ("Не могу загрузить фон из Background.bmp, и я скопировал это из примера.", "Oh, not now");

          // См. важный комментарий в примере к функции txLoadImage!

          txBitBlt (txDC(), 0, 0, 800, 600, background_CopiedFromHelp, 0, 0);

          ...
          txDeleteDC (background_CopiedFromHelp);
bool txBitBlt ( HDC  destImage,
double  xDest,
double  yDest,
double  width,
double  height,
HDC  sourceImage,
double  xSource = 0,
double  ySource = 0,
unsigned  operation = SRCCOPY 
)

Копирует изображение с одного холста (контекста рисования, DC) на другой.

Аргументы:
destImageКонтекст назначения (куда копировать). Для копирования в окно TXLib укажите txDC().
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
widthШирина копируемой области. Если равна 0, то равна ширине изображения-источника.
heightВысота копируемой области. Если равна 0, то равна высоте изображения-источника.
sourceImageКонтекст источника (откуда копировать).
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
operationВид операции копирования. Список видов гуглите по запросу "BitBlt function MSDN". Необязательен. Если не указан, то SRCCOPY (обычное копирование изображения).
Возвращает:
Если операция была успешна -- true, иначе -- false.
Предупреждения:
Если контексты источника равен NULL, то он не существует и копирование вызовет ошибку. Наиболее частая причина -- ошибка при загрузке файла изображения и отсутствие проверки на эту ошибку. Пример с проверкой на правильность загрузки см. ниже.
См. также:
txAlphaBlend(), txTransparentBlt(), txSaveImage(), txGetExtent(), txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txCreateDIBSection()
Примеры использования:
Пример использования см. в файле TX\Examples\Tennis\Tennis.cpp.
          HDC  background_CopiedFromHelp = txLoadImage ("Resources\\Images\\Background.bmp");

          if (!background_CopiedFromHelp)
              txMessageBox ("Не могу фон из загрузить Background.bmp, и да, я взял этот код из примера.", "Once again :(");

          // См. важный комментарий в примере к функции txLoadImage!

          txBitBlt (txDC(), 0, 0, 800, 600, background_CopiedFromHelp);

          ...
          txDeleteDC (background_CopiedFromHelp);
bool txBitBlt ( double  xDest,
double  yDest,
HDC  sourceImage,
double  xSource = 0,
double  ySource = 0 
)

Копирует изображение на экран.

Аргументы:
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
sourceImageКопируемое изображение.
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
Возвращает:
Если операция была успешна -- true, иначе -- false.

См. описание в функции txBitBlt() выше.

bool txTransparentBlt ( HDC  destImage,
double  xDest,
double  yDest,
double  width,
double  height,
HDC  sourceImage,
double  xSource = 0,
double  ySource = 0,
COLORREF  transColor = TX_BLACK 
)

Копирует изображение с одного холста (контекста рисования, DC) на другой с учетом прозрачности.

Аргументы:
destImageКонтекст назначения (куда копировать). Для копирования в окно TXLib укажите txDC().
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
widthШирина копируемой области. Если равна 0, то автоматически берется из размера источника.
heightВысота копируемой области. Если равна 0, то автоматически берется из размера источника.
sourceImageКонтекст источника (откуда копировать).
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
transColorЦвет, который будет считаться прозрачным. Необязателен. Если не указан, то TX_BLACK.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Предупреждения:
Если контекст источника равен NULL, то он не существует и копирование вызовет ошибку. Наиболее частая причина -- ошибка при загрузке файла изображения и отсутствие проверки на эту ошибку. Пример с проверкой на правильность загрузки см. ниже.

Изображение-источник и изображение-приемник не могут налагаться друг на друга.

Если прямоугольник копируемой области не полностью лежит внутри изображения-источника, то функция работать не будет. Такое бывает, если xSource или ySource отрицательны, или величина (xSource + width) больше ширины изображения-источника, или величина (ySource + height) больше высоты изображения-источника.

Стандартная функция TransparentBlt из Win32 API может масштабировать изображение. В txTransparentBlt это убрано для упрощения использования. If you need image scaling, use original function TransparentBlt and don't mess with stupid TX-based tools. (See implementation of txTransparentBlt in TXLib.h).

Заметки:
Если TransparentBlt не работает, используйте функцию AlphaBlend, она вообще лучше.
Стандартная функция Win32::TransparentBlt из Win32 API может масштабировать изображение. В txTransparentBlt это убрано для упрощения использования. If you still need image scaling, use original function Win32::TransparentBlt and don't mess with stupid TX-based tools. (See implementation of txTransparentBlt in TX library source: open TXLib.h file in your editor and search for txTransparentBlt function definition.)
См. также:
txBitBlt(), txAlphaBlend(), txLoadImage(), txCreateCompatibleDC(), txSaveImage(), txGetExtent(), txCreateDIBSection()
Примеры использования:
Пример использования см. в файле TX\Examples\Tennis\Tennis.cpp.
          HDC  superman_CopiedFromHelp = txLoadImage ("Resources\\Images\\Superman.bmp");

          if (!superman_CopiedFromHelp)
              txMessageBox ("Cannot load superman, all the monsters will succeed (I copied them from TXLib Help)", "Sorry");

          // См. важный комментарий в примере к функции txLoadImage!

          txTransparentBlt (txDC(), 0, 0, 800, 600, superman_CopiedFromHelp);

          // А можно и так:
          Win32::TransparentBlt (txDC(), 0, 0, 800, 600, superman_CopiedFromHelp, 0, 0, 80, 60, -1); // 10x zoom
          // Познай мощь Win32 GDI, отказавшись от TXLib'а! :) см. TransparentBlt в MSDN.com.

          ...
          txDeleteDC (superman_CopiedFromHelp);  // So pity :( But he was only a copy from TXLib Help.
bool txTransparentBlt ( double  xDest,
double  yDest,
HDC  sourceImage,
COLORREF  transColor = TX_BLACK,
double  xSource = 0,
double  ySource = 0 
)

Копирует изображение на экран с учетом прозрачности.

Аргументы:
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
sourceImageКопируемое изображение.
transColorЦвет, который будет считаться прозрачным. Необязателен. Если не указан, то TX_BLACK.
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
Возвращает:
Если операция была успешна -- true, иначе -- false.

См. описание в функции txTransparentBlt() выше.

bool txAlphaBlend ( HDC  destImage,
double  xDest,
double  yDest,
double  width,
double  height,
HDC  sourceImage,
double  xSource = 0,
double  ySource = 0,
double  alpha = 1.0 
)

Копирует изображение с одного холста (контекста рисования, DC) на другой с учетом полупрозрачности.

Аргументы:
destImageКонтекст назначения (куда копировать). Для копирования в окно TXLib укажите txDC().
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
widthШирина копируемой области. Если равна 0, то равна ширине изображения-источника.
heightВысота копируемой области. Если равна 0, то равна высоте изображения-источника.
sourceImageКонтекст источника (откуда копировать). Должен иметь 32-битовый формат и альфа-канал (см. ниже).
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
alphaОбщая прозрачность изображения, в дополнение к альфа-каналу (0 -- все прозрачно, 1 -- использовать только альфа-канал). Необязательна. Если не указана, то 1.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Предупреждения:
Если контекст источника равен NULL, то он не существует и копирование вызовет ошибку. Наиболее частая причина -- ошибка при загрузке файла изображения и отсутствие проверки на эту ошибку. Пример с проверкой на правильность загрузки см. ниже.

Изображение-источник и изображение-приемник не могут налагаться друг на друга.

Если прямоугольник копируемой области не полностью лежит внутри изображения-источника, то функция работать не будет. Такое бывает, если xSource или ySource отрицательны, или величина (xSource + width) больше ширины изображения-источника, или величина (ySource + height) больше высоты изображения-источника.
Заметки:
Изображение-источник должно быть загружено с помощью txLoadImage() и иметь 32-битовый RGBA-формат. Дополнительный канал (A: альфа-канал) 32-битового формата отвечает за попиксельную прозрачность участков изображения: для каждого пикселя в этом канале значение 0 означает его полную прозрачность, значение 255 -- полную непрозрачность, промежуточные значения -- полупрозрачность.

Пустое 32-битовое изображение-источник также может быть создано с помощью функций txCreateCompatibleDC() или txCreateDIBSection(). После создания на этом изображении можно рисовать, как на основном окне TXLib, используя параметр dc функций рисования фигур.

Предупреждения:
Если изображение не имеет альфа-канала, или его альфа-канал полностью черный, то txAlphaBlend() может решить, что изображение полностью прозрачно и не выведет на экран ничего.

Если изображение-источник создано с помощью txCreateDIBSection() или txLoadImage(), то txAlphaBlend() может использовать как общую прозрачность, задачаемую параметром alpha, так и попиксельную прозрачность, задаваемую альфа-каналом.

Если изображение имеет 24-битовый RGB-формат файлов (TrueColor), то это подразумевает, что попиксельной прозрачности нет и все пиксели изображения имеют равную прозрачность, задающуюся параметром alpha.

Имейте в виду, что многие графические редакторы сохраняют изображение в 32-битовом формате, даже если вы явно указываете 24-битовый формат или формат TrueColor. Если при этом в изображении нет альфа-канала, то txAlphaBlend не выведет ничего. Так происходит, например, если сохранять картинку в Microsoft Paint, который не умеет создавать альфа-каналы и при этом сохраняет всегда в 32-битовом формате. Для таких случаев надо использовать txTransparentBlt.

Для BMP-файла альфа-канал можно сделать, например, в Adobe Photoshop, командой "Новый канал (New Channel)" в палитре каналов (Channels). Черный цвет в альфа-канале соответствует полной прозрачности, белый -- полной непрозрачности. При этом в прозрачных областях само изображение (в каналах R, G, B) должно быть черным, и чем прозрачнее, тем чернее. Такой формат цвета называется Premultiplied Alpha. См. изображение с альфа-каналом в примере TX\Examples\Tennis\Tennis.cpp (файл с теннисной ракеткой: TX\Examples\Tennis\Resources\Images\Racket.bmp).

Иначе говоря, при пересчете в формат Premultiplied Alpha надо домножить цвета в каналах R,G,B на значения альфа-канале A: R,G,B *= A / 255.0. Получится вот что:

  • Если значение альфа-канала для некоторого пикселя равно 0 (полная прозрачность), тогда значения каналов R,G,B для этого пикселя также станут 0 (это черный цвет).
  • Если значение альфа-канала для некоторого пикселя равно 255 (полная непрозрачность), тогда значения каналов R,G,B для этого пикселя не изменятся.
  • Для других значений альфа-канала, пиксели изображения станут темнее.

В редакторе Adobe Photoshop это можно сделать командой Image -- Apply Image с параметрами:

Source:   Имя файла с картинкой
Layer:   Background
Channel:    Alpha 1
Blending:   Multiply
Opacity:   100%

Если изображение с альфа-каналом не находится в формате Premultiplied Alpha   и вам лень читать что, что написано выше,   то для перевода в этот формат можно использовать функцию txUseAlpha(). Однако не надо вызывать txUseAlpha() несколько раз для одного и того же уже загруженного изображения, иначе оно может становиться темнее и темнее.

См. также:
txBitBlt(), txTransparentBlt(), txLoadImage(), txCreateCompatibleDC(), txSaveImage(), txGetExtent(), txCreateDIBSection(), txUseAlpha()
Примеры использования:
Пример использования см. в файле TX\Examples\Tennis\Tennis.cpp.
          HDC  batman_CopiedFromHelp = txLoadImage ("Resources\\Images\\Batman.bmp");

          if (!batman_CopiedFromHelp)
              txMessageBox ("Call to Batman failed because I copied it from TXLib Help", "Do save yourself");

          txUseAlpha (batman_CopiedFromHelp);  // If image colors are not premultiplied, see above

          // См. важный комментарий в примере к функции txLoadImage!

          txAlphaBlend (txDC(), 0, 0, 800, 600, batman_CopiedFromHelp);

          ...
          txDeleteDC (batman_CopiedFromHelp);  // Don't worry, batman will return in "Batman returns" movie, later...
          ...

          return batman_CopiedFromHelp;        // ...and there he comes -- in TXLib copy form
bool txAlphaBlend ( double  xDest,
double  yDest,
HDC  sourceImage,
double  xSource = 0,
double  ySource = 0,
double  alpha = 1.0 
)

Копирует изображение на экран с учетом полупрозрачности.

Аргументы:
xDestX-координата верхнего левого угла копируемого изображения.
yDestY-координата верхнего левого угла копируемого изображения.
sourceImageКопируемое изображение.
xSourceX-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
ySourceY-координата верхнего левого угла копируемой области внутри изображения-источника. Необязательна. Если не указана, то 0.
alphaОбщая прозрачность изображения, в дополнение к альфа-каналу (0 -- все прозрачно, 1 -- использовать только альфа-канал). Необязательна. Если не указана, то 1.
Возвращает:
Если операция была успешна -- true, иначе -- false.

См. описание в функции txAlphaBlend() выше.

HDC txUseAlpha ( HDC  image)

Пересчитывает цвета пикселей с учетом прозрачности (переводит цвета в формат Premultiplied Alpha).

Аргументы:
imageДескриптор холста, изображение которого пересчитывается.
Возвращает:
Если операция была успешна, возвращается исходный HDC, иначе -- NULL.

Пересчет цветов в каналах R,G,B в формат Premultiplied Alpha с учетом значения в альфа-канале A идет по формуле R,G,B *= A / 255.0. Получается вот что:

  • Если значение альфа-канала для некоторого пикселя равно 0 (полная прозрачность), тогда значения каналов R,G,B для этого пикселя также станут 0 (это черный цвет).
  • Если значение альфа-канала для некоторого пикселя равно 255 (полная непрозрачность), тогда значения каналов R,G,B для этого пикселя не изменятся.
  • Для других значений альфа-канала, пиксели изображения станут темнее.

Пересчет цветов пикселей с учетом их прозрачности в формат Premultiplied Alpha необходим:

  • В случае ручного изменения цветов, пример см. в функции txCreateDIBSection().
  • После загрузки картинок из файла с помощью txLoadImage(), если цвета изображения в нем не были заранее домножены на альфа-канал в Adobe Photoshop или аналогичной программе (см. замечания к функции txAlphaBlend).

См. также замечания к функции txAlphaBlend().

См. также:
txCreateCompatibleDC(), txCreateDIBSection(), txLoadImage(), txDeleteDC(), txAlphaBlend()
Примеры использования:
См. в функции txCreateDIBSection().
bool txSaveImage ( const char  filename[],
HDC  dc = txDC() 
)

Сохраняет в файл изображение в формате BMP.

Аргументы:
filenameИмя файла с расширением "BMP", куда будет записано изображение в формате BMP.
dcДескриптор холста, изображение которого сохраняется в файл. Необязателен. Если txDC(), сохраняется изображение окна TXLib.
Возвращает:
Если операция была успешна -- true, иначе -- false.
См. также:
txCreateCompatibleDC(), txLoadImage(), txDeleteDC(), txBitBlt(), txAlphaBlend(), txTransparentBlt()
Примеры использования:
          txDrawMan (50, 110, 100, 100, TX_YELLOW, 0.3, -0.5, -0.4, 0, 0.8, 1, -1, 0.5, 1, 1);

          HDC dc = txCreateCompatibleDC (100, 110);
          txBitBlt (dc, 0, 0, 100, 110, txDC());
          txSaveImage ("TXLibMan.bmp", dc);

          txBitBlt     (dc,       0,   0, 100, 110, txDC());
          txBitBlt     (txDC(), 200, 200,   0,   0, dc);
          txAlphaBlend (txDC(), 100, 100,   0,   0, dc, 0, 0, 0.25, 0);
          txDeleteDC (dc);

          txSaveImage ("ScreenShot.bmp");
double txSleep ( double  time = 0)

Задерживает выполнение программы на определенное время.

Аргументы:
timeЗадержка в миллисекундах. Необязательна. Если не указана, то используется минимальная возможная задержка.
Возвращает:
Реальное время задержки в миллисекундах.
Заметки:
Перед началом задержки изображение в окне обязательно обновится, даже если рисование заблокировано через txBegin().

Более полную информацию об обновлении изображения окна см. в функции txBegin(). См. также txEnd(), txRedrawWindow(), txUpdateWindow().
См. также:
txBegin(), txEnd(), txUpdateWindow(), txDC()
Примеры использования:
          txSleep (500); // ПП: Поспать Полсекунды
int txBegin ( )

Блокирует обновление изображения окна, во избежание мигания.

Для снятия блокировки используется функция txEnd().

TXLib реализует двойную буферизацию. Все рисовательные действия происходят со скрытым HDC, находящемся в памяти, и его содержимое периодически автоматически копируется на экран. Это иногда приводит к мерцанию. Автоматическое копирование можно выключить функцией txBegin() и обратно включить функцией txEnd(), в этом случае содержимое окна можно перерисовать функциями txRedrawWindow() или txSleep().

Если в программе требуется задержка, то используйте функции txRedrawWindow() или txSleep(), так как они автоматически обновляют изображение, независимо от состояния блокировки.

Предупреждения:
Избегайте блокирования на долгое время. Это может привести к дефектам изображения в окне.
Заметки:
Если нажата клавиша Alt+PrintScreen, то блокировка временно отменяется.
Возвращает:
Значение счетчика блокировки (если 0, то рисование разблокировано).
См. также:
txEnd(), txSleep(), txUpdateWindow(), txDC(), txVideoMemory(), txTextCursor()
Примеры использования:
          txBegin();                             // Здесь изображение "замерзнет"
          txSetFillColor (TX_WHITE);
          txClear();                             // Это вызвало бы мигание без txBegin()
          txSetFillColor (TX_RED);
          txRectangle (100, 100, 200, 200);
          txEnd();                               // Здесь мы сразу увидим окончательный рисунок

          //
          // Как правильно использовать блокировку обновления окна в циклах:
          //

          int x = 0, y = 0;

          txBegin();                             // Отключаем автоматическое обновление окна

          while (!GetAsyncKeyState (VK_ESCAPE))  // Цикл, пока не нажата клавиша ESCAPE
              {
              txSetFillColor (TX_BLACK);
              txClear();                         // Очищаем окно

              txSetFillColor (TX_DARKGRAY);      // Рисуем объект. По-нормальному это надо сделать в отдельной
              txCircle (x, y, 50);               // функции. На экране это рисование пока не будет видно,
              txSetFillColor (TX_LIGHTGRAY);     // из-за отключенного обновления и двойной буферизации.
              txCircle (x, y, 30);
              txSetFillColor (TX_WHITE);
              txCircle (x, y, 10);

              x += 5;                            // Изменяем координаты объекта
              y += 5;

              txSleep (50);                      // Делаем задержку. При этом изображение окна обновляется.
              }

          txEnd();                               // После цикла включаем автоматическое обновление окна

          //
          // Как *НЕ* правильно использовать блокировку:
          //

          txBegin();

          while (!GetAsyncKeyState (VK_ESCAPE))
              {
              txSetFillColor (TX_BLACK);         // Очищаем окно
              txClear();
              txSleep (50);                      // Первая ошибка: окно обновляется в нелогичный момент,
                                                 // когда оно только что очищено. Мы увидим только черный фон.

              txSetFillColor (TX_DARKGRAY);      // Рисуем объект, но он не будет виден.
              txCircle (x, y, 50);
              txSetFillColor (TX_LIGHTGRAY);
              txCircle (x, y, 30);
              txSetFillColor (TX_WHITE);
              txCircle (x, y, 10);

              x += 5;
              y += 5;

              txEnd();                           // Вторая ошибка: при первом же обороте цикла отключается
              }                                  // блокировка обновления, от чего изображение начинает мигать.
int txEnd ( )

Разблокирует обновление окна, заблокированное функцией txBegin().

Предупреждения:
Если txBegin() вызывалась несколько раз, то для снятия блокировки нужно столько же раз вызвать txEnd().
Возвращает:
Значение счетчика блокировки (если 0, то рисование разблокировано).

Более полную информацию об автоматическом обновлении см. в функции txBegin(). См. также txRedrawWindow(), txUpdateWindow(), txSleep().

Заметки:
Если нажата клавиша Alt+PrintScreen, то блокировка временно отменяется.
См. также:
txBegin(), txSleep(), txUpdateWindow(), txDC(), txVideoMemory(), txTextCursor()
Примеры использования:
          txBegin();                        // Здесь изображение "замерзнет"
          txSetFillColor (TX_WHITE);
          txClear();                        // Это вызвало бы мигание без txBegin()
          txSetFillColor (TX_RED);
          txRectangle (100, 100, 200, 200);
          txEnd();                          // Здесь мы сразу увидим окончательный рисунок
void txRedrawWindow ( )

Обновляет изображение в окне TXLib вручную.

Более полную информацию об автоматическом обновлении см. в функции txBegin(). См. также txEnd(), txUpdateWindow(), txSleep().

Предупреждения:
Реализация этой функции неэффективна: она вызывает txSleep (0), что вызывает задержку. Чтобы сделать более эффективную реализацию, посмотрите исходный текст функций txRedrawWindow() и txSleep() и сделайте лучше. Либо напишите свою, более быструю библиотеку на основе Win32 GDI, GDI Plus, OpenGL, DirectX, SDL или SFML.
См. также:
txWindow(), txBegin(), txEnd(), txLock(), txUnlock(), txGDI()
Примеры использования:
          txBegin();                // Выключаем автоматическое обновление экрана

          txCircle (100, 100, 50);  // Рисуем -- изображение не появляется

          Sleep (3000);             // не txSleep()! txSleep() сама обновит изображение на экране

          txRedrawWindow();         // Обновляем экран вручную -- изображение появляется
bool txDestroyWindow ( HWND  wnd = txWindow())

Уничтожает окно.

Аргументы:
wndДескриптор окна для уничтожения. Необязательно. Если не указан, уничтожается окно TXLib.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Предупреждения:
Если уничтожается окно TXLib, функция main() принудительно прерывается и программа завершается. При этом не гарантируется правильное завершение программы, поэтому так делать не рекомендуется.
См. также:
txCreateWindow()
Примеры использования:
          txDestroyWindow();  // Farewell to the world
double txQueryPerformance ( )

Оценивает скорость работы компьютера.

Возвращает:
Скорость работы (графических операций) в условных единицах.
См. также:
txSleep(), txGetFPS()
Примеры использования:
          if (txQueryPerformance() < 1) printf ("Хочется новый компьютер");
double txGetFPS ( int  minFrames = txFramesToAverage)

Выдает количество кадров (вызовов этой функции) в секунду.

Аргументы:
minFramesКоличество вызовов, после которых FPS начинает усредняться по последним txFramesToAverage кадрам. Необязательно. Если не указано, используется txFramesToAverage.
Возвращает:
FPS (Frames per Second), т.е. количество кадров (вызовов этой функции) в секунду.
Заметки:
Когда количество вызовов этой функции превысит minFrames, FPS начинает усредняться по последним txFramesToAverage кадрам. Максимальный интервал усреднения -- txFramesToAverage кадров.
См. также:
txSleep(), txQueryPerformance()
Примеры использования:
См. в функции txCreateDIBSection().
unsigned txSetConsoleAttr ( unsigned  colors = 0x07)

Устанавливает цветовые атрибуты консоли.

Аргументы:
colorsЦветовые атрибуты консоли. Необязательны. Если не указаны, то цвет -- светло-серый.
Возвращает:
Предыдущие цветовые атрибуты консоли.

Атрибуты -- это цвет текста (colorText) и цвет фона (colorBackground), объединенные вместе:

colors = colorText + colorBackground * 16

либо

colors = colorText | (colorBackground << 4)

Цвета атрибутов не имеют никакого отношения к цветам рисования, задаваемыми TX_... константами, RGB(), txSetColor(), txSetFillColor() и т.д. Значения цветов см. ниже.

Значения цветов атрибутов
Dec   Hex     Dec   Hex   
0 =   0x0   = BLACK (Черный),   8 =   0x8   = DARKGRAY (Темно-серый),
1 =   0x1   = BLUE (Синий),   9 =   0x9   = LIGHTBLUE (Светло-синий),
2 =   0x2   = GREEN (Зеленый),   10 =   0xA   = LIGHTGREEN (Светло-зеленый),
3 =   0x3   = CYAN (Сине-зеленый),   11 =   0xB   = LIGHTCYAN (Светло-сине-зеленый),
4 =   0x4   = RED (Красный),   12 =   0xC   = LIGHTRED (Светло-красный),
5 =   0x5   = MAGENTA (Малиновый),   13 =   0xD   = LIGHTMAGENTA (Светло-малиновый),
6 =   0x6   = DARKYELLOW (Темно-желтый),   14 =   0xE   = YELLOW (Желтый),
7 =   0x7   = LIGHTGRAY (Светло-серый),   15 =   0xF   = WHITE (Белый).

Цвета букв образуются соединением слов FOREGROUND_<название цвета>, например, FOREGROUND_WHITE.

Цвета фона образуются соединением слов BACKGROUND_<название цвета>, например, BACKGROUND_CYAN.

В шестнадцатеричной системе счисления атрибуты задавать так: если нужен, скажем, желтый цвет на синем фоне, то его код будет 0x1e (старшая цифра -- старшие 4 бита -- это цвет фона, младшая цифра -- младшие 4 бита -- это цвет текста).

См. также:
txTextCursor(), txGetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleCursorPos(), txGetConsoleExtent(), txGetConsoleFontSize(), txClearConsole()
Примеры использования:
          txSetConsoleAttr (FOREGROUND_YELLOW | BACKGROUND_BLUE);
          printf ("А в небе 0x1 есть город 0xE");  // (c) Б. Гребенщиков
unsigned txGetConsoleAttr ( )

Возвращает текущие цветовые атрибуты консоли.

Возвращает:
Текущие цветовые атрибуты консоли. См. txSetConsoleAttr().
См. также:
txTextCursor(), txSetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleCursorPos(), txGetConsoleExtent(), txGetConsoleFontSize(), txClearConsole()
Примеры использования:
          unsigned attr = txGetConsoleAttr();
bool txClearConsole ( )

Стирает текст консоли.

Возвращает:
Если операция была успешна -- true, иначе -- false.

При стирании используются текущие атрибуты (цвета текста и фона) консоли.

См. также:
txTextCursor(), txSetConsoleAttr(), txGetConsoleAttr(), txGetConsoleCursorPos(), txGetConsoleExtent(), txGetConsoleFontSize(), txClearConsole()
Примеры использования:
          txClearConsole();  // Ну вот и все, дружок
POINT txSetConsoleCursorPos ( double  x,
double  y 
)

Устанавливает позицию мигающего курсора консоли.

Аргументы:
xX-координата курсора в пикселях.
yY-координата курсора в пикселях.
Возвращает:
Предыдущее положение мигающего курсора в пикселях, в структуре POINT.
Заметки:
Нельзя установить совсем любую позицию. Текст в консоли расположен по прямоугольной сетке, размер которой зависит от размеров шрифта консоли. Устанавливаемая позиция округляется, чтобы курсор попал в ячейку сетки. См. пример к функции txGetConsoleFontSize().
См. также:
txTextCursor(), txSetConsoleAttr(), txGetConsoleAttr(), txGetConsoleCursorPos(), txGetConsoleExtent(), txClearConsole()
Примеры использования:
          txSetConsoleCursorPos (txGetExtentX(), txGetExtentY());  // Центр Вселенной
POINT txGetConsoleCursorPos ( )

Возвращает позицию мигающего курсора консоли.

Возвращает:
Положение мигающего курсора в пикселях, в структуре POINT.
См. также:
txTextCursor(), txSetConsoleAttr(), txGetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleExtent(), txClearConsole()
Примеры использования:
          POINT pos = txGetConsoleCursorPos();
POINT txGetConsoleExtent ( )

Возвращает размер консоли.

Возвращает:
Положение мигающего курсора в символах, в структуре POINT.
См. также:
txTextCursor(), txSetConsoleAttr(), txGetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleExtent(), txClearConsole()
Примеры использования:
          POINT size = txGetConsoleExtent();
POINT txGetConsoleFontSize ( )

Возвращает размеры шрифта консоли.

Возвращает:
Размеры шрифта консоли в пикселях, в структуре POINT.
См. также:
txTextCursor(), txSetConsoleAttr(), txGetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleExtent(), txGetConsoleFontSize(), txClearConsole()
Примеры использования:
          POINT size = txGetConsoleFontSize();
          txSetConsoleCursorPos (5 * size.x, 10 * size.y);  // А теперь мигай вот там
bool txTextCursor ( bool  blink = true)

Запрещает или разрешает рисование мигающего курсора в окне.

Аргументы:
blinkfalse -- запретить мигающий курсор. Если не указано, то мигание разрешается.
Возвращает:
Предыдущее значение состояния курсора.
См. также:
txSetConsoleAttr(), txGetConsoleAttr(), txSetConsoleCursorPos(), txGetConsoleCursorPos(), txGetConsoleFontSize(), txClearConsole(), txCreateWindow(), txUpdateWindow(), txLock(), txUnlock(), txGDI()
Примеры использования:
          txTextCursor (false);
          ...
          txTextCursor();
const char* txVersion ( )

Возвращает строку с информацией о текущей версии библиотеки.

Возвращает:
Строка с информацией о текущей версии библиотеки.
Примеры использования:
          printf ("I personally love %s\n", txVersion());
unsigned txVersionNumber ( )

Возвращает номер версии библиотеки.

Возвращает:
Номер версии библиотеки.
Примеры использования:
          printf ("My magic number is %x\n", txVersionNumber());
const char* txGetModuleFileName ( bool  fileNameOnly = true)

Возвращает имя исполняемого файла или изначальный заголовок окна TXLib.

Аргументы:
fileNameOnlyВозвратить только полное имя исполняемого файла, полученного через Win32 функцию GetFileModuleName (NULL, ...). Необязательно. Если не указано, то возвращается полное имя исполняемого файла.
Возвращает:
fileNameOnly = true: Имя исполняемого файла.
fileNameOnly = false: Изначальный заголовок окна TXLib.
Заметки:
Возвращается статическая строка.
См. также:
txWindow(), txVersion(), txVersionNumber()
Примеры использования:
          printf ("Смотрите на заголовок окна!");

          for (int done = 0; done <= 100; done++)
              {
              char title [1024] = "";
              sprintf (title, "%s - [%-10.*s] %d%%", txGetModuleFileName (false), done/10, "||||||||||", done);

              SetWindowText (txWindow(), title);
              SetWindowText (Win32::GetConsoleWindow(), title);
              txSleep (50);
              }

          txMessageBox ("Вот такой вот progress bar", "TXLib forever)");
int txUpdateWindow ( int  update = true)

Разрешает или запрещает автоматическое обновление изображения в окне.

Аргументы:
updateРежим обновления (true -- разрешить, false -- запретить). Необязателен. Если не указан, то "разрешить".
Возвращает:
Предыдущее состояние режима обновления.

В отличие от txBegin() и txEnd(), которые поддерживают вложенные вызовы и работают как "скобки для замерзания картинки", txUpdateWindow() позволяет явно установить или снять блокировку автоматического обновления экрана.

Более полную информацию об автоматическом обновлении см. в функции txBegin(). См. также txEnd(), txRedrawWindow(), txSleep().

См. также:
txBegin(), txEnd(), txSleep(), txUpdateWindow(), txDC(), txVideoMemory(), txTextCursor(), txLock(), txUnlock(), txGDI()
Примеры использования:
          txUpdateWindow (false);
          ...
          txUpdateWindow();
bool txSelectObject ( HGDIOBJ  obj,
HDC  dc = txDC() 
)

Устанавливает текущий активный объект GDI.

Аргументы:
objДескриптор объекта GDI.
dcХолст (контекст рисования), в котором устанавливается текущий активный объект GDI. Необязателен.
Возвращает:
Если операция была успешна -- true, иначе -- false.
Заметки:
Предыдущий выбранный объект того же типа (PEN/BRUSH/BITMAP и т.п.), как и obj, уничтожается.
См. также:
txSetColor(), txGetColor(), txSetFillColor(), txGetFillColor(), txColors, RGB(), txSelectFont()
Примеры использования:
          HPEN pen = CreatePen (PS_DASH, 1, RGB (255, 128, 0));
          txSelectObject (pen);
bool txIDontWantToHaveAPauseAfterMyProgramBeforeTheWindowWillClose_AndIWillNotBeAskingWhereIsMyPicture ( )

Делает нечто иногда удобное. См. название функции.

Возвращает:
Если операция была успешна -- true, иначе -- false.

У этой функции есть синоним с простым понятным названием, поищите его в файле библиотеки, около определения этой функции. Или можно   скопировать   набрать это километровое имя и посмотреть, что получится.

См. также:
txCreateWindow(), txSleep()
Примеры использования:
          int main()
              {
              txCreateWindow (800, 600);

              txSetTextAlign (TA_CENTER);
              txTextOut (txGetExtentX()/2, txGetExtentY()/2, "Press any key to exit!");