Visual C++. Описание стандартных классов - SelectClipRgn

ОГЛАВЛЕНИЕ


SelectClipRgn

virtual int SelectClipRgn(CRgn* pRgn);
int SelectClipRgn(CRgn* pRgn, int nMode);

Возвращаемое значение

Тип области. Может принимать одно из следующих значений:

  •  COMPLEXREGION - новая область отсечки имеет перекрывающиеся границы;
  • ERROR - используется недопустимый контекст устройства или недопустимая область;
  • NULLREGION - создана пустая область отсечки;
  • SIMPLEREGION - новая область отсечки не имеет перекрывающихся границ.
  • Аргументы

    • pRgn - указатель на выбранную область. В первой версии функции SelectClipRgn нулевое значение данного аргумента означает, что выбирается вся рабочая область окна, а область отсечки совпадает с границами окна.
      Во второй версии функции SelectClipRgn данный аргумент может принимать нулевое значение только в режиме RGN_COPY.
    • nMode - определяет выполняемую операцию. Может принимать одно из следующих значений:
      RGN_AND - новая область отсечки представляет собой пересечение текущей области отсечки и области, определенной в аргументе pRgn;
      RGN_COPY - новая область отсечки полностью совпадает с областью, заданной в аргументе pRgn. В этом случае данная функция идентична своей первой версии, однако, если аргумент pRgn в данной версии равен нулю, то в качестве новой области отсечки принимается область отсечки по умолчанию (нулевая область);
      RGN_DIFF - новая область отсечки представляет собой текущую область отсечки, из которой исключены области, перекрывающиеся с областью, заданной в аргументе pRgn;
      RGN_OR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn;
      RGN_XOR - новая область отсечки представляет собой объединение текущей области отсечки и области, заданной в аргументе pRgn, за исключением областей их пересечения.

    Описание

    Выбирает указанную область как новую область отсечки для данного контекста устройства. Используется копия указанной области. Сама область может использоваться в неограниченном количестве объектов класса контекста устройств или может быть удалена. Функция предполагает, что координаты указанной области заданы в единицах устройства. Некоторые принтеры поддерживают в текстовом режиме более высокое разрешение, чем в графическом, для поддержания разрешения, необходимого для задания параметров шрифтов. В этих устройствах при запросе его разрешения сообщаются величины, используемые в режиме высокого разрешения, то есть в текстовом режиме. После этого в данных устройствах производится перерасчет координат графических объектов таким образом, чтобы несколько точек, заданных с высоким разрешением, отображались в одной точке, выводимой с графическим разрешением. При использовании режима вывода текста необходимо всегда вызывать функцию SelectClipRgn. Приложения, использующие масштабирование графических объектов при выводе их с использованием функций GDI должны использовать функцию GETSCALINGFACTOR, позволяющую определить параметры масштабирования данного принтера. Использование неправильного параметра масштабирования может привести к обрезанию выводимой информации. При использовании области для задания области отсечки графических объектов GDI делит полученные координаты на величину параметра масштабирования. При использовании области для задания области отсечки текста, такого преобразования координат не производится. Параметр масштабирования равный 1 приводит к делению координат на 2, а параметр масштабирования равный 2 приводит к делению координат на 4, и так далее.