Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

При выводе пользовательской информации перегруженная функция Dump не должна использовать символа перевода каретки в конце своей работы. Данная функция работает только в отладочной версии библиотеки MFC и ее описание должно располагаться между операторами условной трансляции #ifdef _DEBUG и #endif.

Поскольку функция Dump является функцией-константой, пользователь не может изменять значения величин в проверяемом объекте. Функция Dump вызывается перегруженным оператором записи объекта CDumpContext::operator << при записи указателя на объект класса CObject. Функция Dump не предполагает рекуррентности, то есть пользователь может распечатать список объектов, но если один из объектов сам является списком, то его содержимое не будет распечатано.

Serialize

virtual void Serialize(CArchive& ar);
throw(CMemoryException);
throw(CArchiveException);
throw(CFileException);

Аргументы

q  ar — объект класса CArchive осуществляющий чтение и запись объекта на диске.

Описание

Читает объект с диска и записывает его на диск в с использованием объекта класса архива.

Данная функция должна быть перегружена в каждом производном классе, предполагающем работу с архивом. Первым оператором перегруженной функции должен быть вызов функции Serialize базового класса. Для того, чтобы иметь возможность использовать данную функцию в своем классе, при его описании в файле заголовка должен быть использован макрос DECLARE_SERIAL, а в его файле реализации — макрос IMPLEMENT_SERIAL. Для того, чтобы определить, какая операция производится в данном случае, используются функции CArchive::IsLoading и CArchive::IsStoring.

Функция Serialize вызывается функциями CArchive::ReadObject и CArchive::WriteObject, которые, в свою очередь, вызываются переопределенными операторами CArchive::operator << и CArchive::operator >>, первый из которых производит запись объекта в архив, а второй — извлечение объекта из архива.

CPrintInfo

Класс CPrintInfo используется для хранения информации о текущем задании принтера. Приложение создает объект класса CPrintInfo при выборе команд меню File|Print (Файл|Печать) или File|Print Preview (Файл|Предварительный просмотр) и уничтожает его при завершении выполнения этих команд.

Объект класса CPrintInfo содержит информацию, касающуюся как всего процесса печати, например, диапазон печатаемых страниц, так и статус текущего задания, например, номер печатаемой страницы. Некоторая информация, касающаяся процесса печати, хранится, также, в связанном с данным объектом класса CPrintInfo объекте класса CPrintDialog, хранящем информацию об установках пользователя в диалоговом окне Печать.

Объект класса CPrintInfo передается приложением в объект пользовательского класса представления и служит для обмена информацией между этими классами. Например, приложение передает объекту класса представления номер текущей печатаемой страницы в переменной данного класса m_nCurPage. Объект класса представления использует данную величину для определения того, какую страницу следует печатать.

Другим примером использования объекта класса CPrintInfo является случай, когда размер документа не известен заранее и должен быть определен в процессе печати. В этом случае по достижении конца документа объект класса представления присваивает переменной m_bContinuePrinting, являющейся членом класса CPrintInfo, значение FALSE, тем самым информируя приложение о завершении процесса печати.

Класс CPrintInfo не имеет базового класса.

Описание данного класса содержится в файле заголовка afxext. h.

Пример использования данного класса приведен в главе 10.

GetFromPage

UINT GetFromPage() const;

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

Возвращает номер первой печатаемой страницы документа.

Описание

Позволяет получить номер первой печатаемой страницы документа. Это значение задается пользователем в диалоговом окне Печать и сохраняется в объекте класса CPrintDialog, указатель на который содержится в переменной m_pPD объекта класса CPrintInfo. Если пользователь не задал первую печатаемую страницу, то печать начинается с первой страницы документа.

GetMinPage

UINT GetMinPage() const;

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

Возвращает номер первой страницы документа.

Описание

Позволяет получить номер первой страницы документа. Это значение задается пользователем в диалоговом окне Печать и сохраняется в объекте класса CPrintDialog, указатель на который содержится в переменной m_pPD объекта класса CPrintInfo.

GetMaxPage

UINT GetMaxPage() const;

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

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

Описание

Позволяет получить номер последней страницы документа. Это значение задается пользователем в диалоговом окне Печать и сохраняется в объекте класса CPrintDialog, указатель на который содержится в переменной m_pPD объекта класса CPrintInfo.

GetToPage

UINT GetToPage() const;

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

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

Описание

Позволяет получить номер последней печатаемой страницы документа. Это значение задается пользователем в диалоговом окне Печать и сохраняется в объекте класса CPrintDialog, указатель на который содержится в переменной m_pPD объекта класса CPrintInfo. Если пользователь не задал последнюю печатаемую страницу, то печать производится до конца документа.

НЕ нашли? Не то? Что вы ищете?

SetMaxPage

void SetMaxPage(UINT nMaxPage);

Аргументы

q  nMaxPage — номер последней страницы в документе.

Описание

Данная функция позволяет задать номер последней страницы в документе. Это значение будет храниться в переменной m_pPD класса CPrintDialog. Если размер документа известен до начала процесса печати, то эта функция вызывается в функции CView::OnPreparePrinting. Если же размер документа зависит от установок пользователя сделанных им в диалоговом окне Печать, то эта функция вызывается из функции CView::OnBeginPrinting. Если же размер документа не может быть определен до завершения процесса печати, то для завершения этого процесса используется переменная m_bContinuePrinting.

CProgressCtrl

Линейный индикатор представляет собой окно, которое может быть использовано приложением для индикации степени завершения некоторой длинной операции. Данный элемент управления представляет собой прямоугольник, который заполняется системным цветом в направлении слева направо по мере завершения операции.

Класс CProgressCtrl обеспечивает функционирование линейного индикатора в операционной системе Windows. Этот элемент управления (а следовательно и класс CProgressCtrl) может быть использован только в программах, работающих под управлением операционных систем Windows 95 и Windows NT версии 3.51 и более поздних версий данных операционных систем.

Линейный индикатор характеризуется диапазоном отображаемых величин и своей текущей позицией. Диапазон отображаемых величин соответствует всему объему работы, выполняемому данной операцией, а текущая позиция характеризует ту часть работы, которую данная операция проделала на данный момент. Процедура окна линейного индикатора использует значения диапазона и текущей позиции для того, чтобы определить какую часть окна необходимо заполнить системным цветом и какой текст вывести в окне (если в данном окне предусмотрен вывод текста). Поскольку для задания диапазона и текущей позиции используются целые числа со знаком, нижняя граница диапазона не может быть меньше, чем –, а верхняя граница диапазона не может быть больше, чем .

Описание данного класса содержится в файле заголовка afxcmn. h.

Пример использования данного класса приведен в главе 4.

Create

BOOL Create(DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID);

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

TRUE, если был создан объект класса CProgressCtrl, в противном случае — FALSE.

Аргументы

q  dwStyle — определяет стиль линейного индикатора. Окно линейного индикатора всегда создается как дочернее окно, родительским окном которого, обычно, является диалоговое окно. Данный аргумент может представлять собой любую допустимую комбинацию стандартных стилей окна, однако все стили, кроме перечисленных ниже будут игнорироваться:

·  WS_BORDER — создает рамку вокруг окна;

·  WS_CHILD — создает дочернее окно (обязательный стиль для объекта класса CProgressCtrl);

·  WS_CLIPCHILDREN — исключает области, занимаемые дочерними окнами из области перерисовки родительского окна. Задается при создании объекта класса родительского окна;

·  WS_CLIPSIBLINGS — исключает области, занимаемые другими дочерними окнами из области перерисовки данного дочернего окна;

·  WS_DISABLED — создает неактивное окно;

·  WS_VISIBLE — создает окно, которое сразу же отображается на экране;

·  WS_TABSTOP — включает данное окно в последовательность окон, по которой можно перемещаться путем нажатия клавиши TAB.

Кроме данных стилей, линейный индикатор использует два дополнительных стиля:

·  PBS_VERTICAL — ориентирует полосу линейного индикатора в вертикальном направлении и ее заполнение производится сверху вниз. Если этот флаг не установлен, полоса линейного индикатора располагается в горизонтальном направлении и ее заполнение производится слева направо;

·  PBS_SMOOTH — отображает сплошную полосу линейного индикатора. По умолчанию полоса линейного индикатора разделена на блоки.

q  rect — определяет размер и положение линейного индикатора. Этот аргумент может представлять собой объект класса CRect или объект структуры RECT. Поскольку данный элемент управления представляет собой дочернее окно, определяемые в данном аргументе координаты являются относительными и определяются системой координат, установленных в родительском окне.

q  pParentWnd — указатель на объект класса родительского окна, обычно это объект класса CDialog. Данный аргумент не может иметь нулевого значения.

q  nID — идентификатор ресурса линейного индикатора.

Описание

Создание объекта класса CProgressCtrl состоит из двух этапов: на первом этапе вызывается конструктор, создающий объект класса CProgressCtrl, а на втором этапе вызывается функция Create, создающая связанное с ним окно.

SetPos

int SetPos(int nPos);

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

Старое значение позиции линейного индикатора.

Аргументы

q  nPos — новая позиция линейного индикатора.

Описание

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

SetRange

void SetRange(short nLower, short nUpper);

void SetRange32(int nLower, int nUpper);

Аргументы

q  nLower — определяет нижний предел диапазона (по умолчанию равен нулю).

q  nUpper — определяет верхний предел диапазона (по умолчанию равен 100).

Описание

Устанавливает верхний и нижний пределы диапазона линейного индикатора и перерисовывает индикатор, чтобы отразить внесенные в него изменения. Функция SetRange32 устанавливает 32-разрядные границы диапазона линейного индикатора.

CPropertyPage

Объект класса CPropertyPage представляет собой отдельную страницу окна свойств, иначе называемую вкладкой диалогового окна. Как и для стандартного диалогового окна для каждой его вкладки необходимо создать отдельный класс, производный от класса CPropertyPage. Чтобы использовать объекты данного класса необходимо сначала создать объект класса CPropertySheet, а затем включить в него объекты классов всех составляющих его вкладок. Чтобы добавить в диалоговое окно новую вкладку необходимо вызвать для объекта ее класса функцию CPropertySheet::AddPage, а затем вывести это диалоговое окно на экран, вызвав функцию CPropertySheet::DoModal для модального диалогового окна или CPropertySheet::Create для немодального диалогового окна.

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

Описание данного класса содержится в файле заголовка afxdlgs. h.

Пример использования данного класса приведен в главе 3.

OnSetActive

virtual BOOL OnSetActive();

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

Ненулевое, если вкладка успешно активизировалась, и нулевое в противном случае.

Описание

Данная функция вызывается приложением при выборе данной вкладки пользователем. Перегрузка данной функции позволяет произвести инициализацию содержащихся в ней объектов классов элементов управления. Первым оператором перегруженной функции должен быть вызов соответствующего метода базового класса.

По умолчанию данная функция создает окно для данной вкладки, если оно уже не было создано ранее, и делает эту вкладку активной.

OnWizardBack

virtual LRESULT OnWizardBack();

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

Нулевое, для успешного перехода к предыдущей странице, и -1 для предотвращения перехода. Чтобы перейти к произвольной станице, возвратите идентификатор диалогового окна, которое необходимо вывести на экран.

Описание

Данная функция вызывается приложением при нажатии пользователя на кнопку <Назад в окне мастера. Перегрузка данной функции позволяет определить некоторые действия, которые необходимо предпринять при возврате к предыдущей странице.

OnWizardFinish

virtual BOOL OnWizardFinish();

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

Ненулевое, если окно мастера было уничтожено при завершении его работы, и нулевое в противном случае.

Описание

Данная функция вызывается приложением при нажатии пользователя на кнопку Готово в окне мастера. Перегрузка данной функции позволяет определить некоторые действия, которые необходимо предпринять при нажатии кнопки Готово.

Если данная функция возвращает значение TRUE, то диалоговое окно со вкладками уничтожается и мастер прекращает свою работу. В противном случае диалоговое окно со вкладками не уничтожается.

OnWizardNext

virtual LRESULT OnWizardNext();

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

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

Описание

Данная функция вызывается приложением при нажатии пользователя на кнопку Далее> в окне мастера. Перегрузка данной функции позволяет определить некоторые действия, которые необходимо предпринять при переходе к следующей странице.

CPropertySheet

Объекты класса CPropertySheet представляют собой диалоговые окна со вкладками. Данный объект обычно включает в себя один или несколько объектов класса CPropertyPage. Данное диалоговое окно состоит из ярлыков вкладок, отображаемых в данном диалоговом окне и области, занимаемой текущей отображаемой вкладкой.

Хотя класс CPropertySheet и не является производным от класса CDialog, многие функции данного класса, совпадают с функциями класса CDialog. Например, объект данного класса также создается в два этапа: сначала вызывается конструктор класса, а затем функция DoModal для создания модального диалогового окна со вкладками, или Create для создания немодального диалогового окна. Класс CPropertySheet имеет два типа конструкторов: CPropertySheet::Construct и CPropertySheet::CPropertySheet.

Обмен данными между объектом класса CPropertySheet и некоторым внешним объектом осуществляется аналогично обмену данными с объектом класса CDialog. Основным отличием является то, что для инициализации объектов элементов управления вкладки используются переменные-члены класса CPropertyPage, а не переменные класса CPropertySheet.

Класс CPropertySheet позволяет создать диалоговое окно, оформленное в стиле мастера, представляющее собой последовательность вкладок, перемещение по которым происходит в определенной последовательности и управляется специальными кнопками в диалоговом окне. В диалоговом окне мастера вкладки не имеют ярлыков и на экране отображается только одна вкладка. Вместо кнопок OK и Применить, в диалоговом окне мастера используются кнопки <Назад, Далее> или Готово. Кроме этого в нем используются кнопки Отмена и Справка.

Чтобы создать диалоговое окно мастера, необходимо сначала создать простое диалоговое окно со вкладками, а затем, перед вызовом функции DoModal, вызвать функцию SetWizardButtons. Для того, чтобы после завершения работы пользователя с окном в нем появилась кнопка Готово, вызовите функцию SetFinishText.

Описание данного класса содержится в файле заголовка afxdlgs. h.

Пример использования данного класса приведен в главе 3.

AddPage

void AddPage(CPropertyPage *pPage);

Аргументы

q  pPage — указатель на объект класса CPropertyPage, добавляемый в данное диалоговое окно. Не может принимать нулевое значение.

Описание

Данная функция добавляет вкладку в диалоговое окно и помещает ее ярлык в крайнюю правую позицию в окне. Поэтому, вкладки располагаются в диалоговом окне слева направо в порядке их включения в объект класса диалогового окна.

Функция AddPage добавляет вкладку в окно, но не отображает ее на экране. Отображение происходит только после выбора соответствующего ярлыка вкладки.

Диалоговое окно является родительским окном для вкладки, поэтому, для доступа к нему из объекта вкладки может быть использована функция CWnd::GetParent.

Вызов функции AddPage может быть осуществлен до вызова функций DoModal или Create. При вызове данной функции в открытом диалоговом окне в ряду ярлыков немедленно произойдут соответствующие изменения.

CPropertySheet::CPropertySheet

CPropertySheet();

CPropertySheet(UINT nIDCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0);

CPropertySheet(LPCTSTR pszCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0);

Аргументы

q  nIDCaption — идентификатор заголовка диалогового окна с вкладками.

q  pParentWnd — указатель на родительское окно диалогового окна с вкладками. Если данный аргумент равен нулю, то родительским окном для данного окна будет главное окно приложения.

q  iSelectPage — индекс вкладки, которая должна быть открытой при открытии окна. По умолчанию раскрывается первая вкладка. Нумерация вкладок определяется порядком включения их в диалоговое окно.

q  pszCaption — указатель на строку, содержащую заголовок диалогового окна со вкладками. Данный аргумент не может быть нулевым.

Описание

Данная функция используется для создания объектов класса CPropertySheet. Для вывода диалогового окна со вкладками на экран используются функции DoModal и Create. Строка, определяемая первым аргументом данной функции, помещается в заголовок диалогового окна.

DoModal

virtual int DoModal();

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

IDOK или IDCANCEL, если работа с диалоговым окном завершилась без ошибок. В противном случае — 0 или –1. Если диалоговое окно было вызвано в режиме мастера, данная функция возвращает ID_WIZFINISH или IDCANCEL.

Описание

Данная функция вызывается для отображения диалогового окна со вкладками на экране. Возвращаемое значение определяется идентификатором элемента управления, с помощью которого было закрыто диалоговое окно. После выхода из функции объект класса окна уничтожается, но сам объект диалогового окна продолжает существовать. Обычно, информация из переменных объектов класса CPropertyPage извлекается после того, как функция DoModal возвратит значение IDOK.

При первом создании вкладки диалогового окна из соответствующего ей ресурса диалогового окна может быть вызвано исключение. Это связано с тем, что объект класса CPropertyPage вносит изменения в стиль ресурса диалогового окна до создания самой вкладки. Поскольку обычно объекты ресурсов имеют атрибут только для чтения, это вызывает исключение. Это исключение обрабатывается программой, в результате чего в системе автоматически появляется модифицированная копия данного ресурса. Таким образом вызванное исключение игнорируется.

Поскольку данное исключение должно обрабатываться операционной системой, не помещайте вызов функции CPropertySheet::DoModal в блок try/catch, обрабатывающий все исключения, например, с использованием оператора catch (...). Данный оператор возьмет на себя обработку исключения, предназначенного для операционной системы, что может привести к непредсказуемым последствиям.

SetFinishText

void SetFinishText(LPCTSTR lpszText);

Аргументы

q  lpszText — указатель на строку, отображаемую в кнопке Готово.

Описание

Данная функция вызывается для задания текста, отображаемого в кнопке Готово после завершения работы пользователя с окном мастера. Кроме отображения заданного теста данная функция убирает из диалогового окна кнопку <Назад.

SetWizardButtons

void SetWizardButtons(DWORD dwFlags);

Аргументы

q  dwFlags — набор флагов, определяющих набор кнопок, используемых в мастере и их доступность. Этот аргумент может представлять собой комбинацию следующих значений:

·  PSWIZB_BACK — доступна кнопка <Назад;

·  PSWIZB_NEXT — доступна кнопка Далее>;

·  PSWIZB_FINISH — присутствует кнопка Готово;

·  PSWIZB_DISABLEDFINISH — кнопка Готово недоступна.

Описание

Данная функция вызывается для того, чтобы сделать доступными или недоступными кнопки <Назад, Далее> и Готово в диалоговом окне мастера. Функция SetWizardButtons может вызываться только в открытом диалоговом окне: ее нельзя вызывать до вызова функции DoModal. Обычно она вызывается в функции CPropertyPage::OnSetActive.

Чтобы изменить текст в кнопке Готово и скрыть кнопки Далее> и <Назад, вызовите функцию SetFinishText. Поскольку кнопки Готово и Далее> разделяют одну и ту же физическую кнопку, они не могут отображаться одновременно. Кнопка Готово имеет приоритет и будет отображаться, если задано отображение сразу обеих кнопок.

SetWizardMode

void SetWizardMode();

Описание

Данная функция вызывается для установления режима отображения вкладок в стиле мастера. Основными отличительными особенностями отображения вкладок в режиме мастера является использование для перехода от одной вкладки к другой кнопок Далее>, <Назад, Готово и Отмена вместо ярлыков вкладок.

Функция SetWizardMode вызывается перед функцией DoModal. После этого функция DoModal возвращает одно из значений: ID_WIZFINISH (если для закрытия диалогового окна использовалась кнопка Готово) или IDCANCEL (если для закрытия диалогового окна использовалась кнопка Отмена).

Данная функция устанавливает флаг PSF_WIZARD.

CRect

Класс CRect во многом аналогичен структуре RECT, определенной в операционной системе Windows. Класс CRect включает в себя функции для работы с объектами данного класса и структуры RECT. Объекты класса CRect могут использоваться в аргументах функций вместо объектов структуры RECT, а также вместо указателей LPCRECT или LPRECT.

Данный класс является производным от структуры tagRECT (имя tagRECT является менее распространенным именем для структуры RECT). Это означает, что переменные left, top, right и bottom структуры RECT являются доступными членами класса CRect. Объект класса CRect содержит переменные для задания левого верхнего и правого нижнего углов прямоугольника.

При создании объекта класса CRect необходимо убедиться в том, что задаваемые координаты прямоугольника нормализованы, то есть координата left меньше координаты right, а координата top меньше координаты bottom. Например, координаты левого верхнего угла (10,10) и координаты правого нижнего угла (20,20) задают нормализованный прямоугольник, а координаты левого верхнего угла (20,20) и координаты правого нижнего угла (10,10) задают ненормализованный прямоугольник. Если прямоугольник не нормализован, то многие функции класса CRect могут возвращать неправильные результаты. Список этих функций приведен при описании функции NormalizeRect. Перед вызовом данных функций необходимо вызвать функцию NormalizeRect, нормализующую объект своего класса.

При использовании объектов класса CRect в функциях CDC::DPtoLP и CDC::LPtoDP следует соблюдать осторожность. Если используемый режим отображения предполагает использование отрицательных вертикальных координат, как это имеет место в режиме отображения MM_LOENGLISH, то функция CDC::DPtoLP преобразует объект класса CRect таким образом, что его координата top будет иметь большее значение, чем координата bottom. Это приведет к тому, что функции Height и Size будут возвращать отрицательные значения высоты преобразованного объект класса CRect и данный прямоугольник станет ненормализованным.

При перегрузке операторов класса CRect первым операндом должен быть объект класса CRect, а вторым — объект структуры RECT или объект класса CRect.

Описание данного класса содержится в файле заголовка afxwin. h.

PtInRect

BOOL PtInRect(POINT point) const;

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

Ненулевое, если данная точка лежит в пределах прямоугольника, описываемого объектом класса CRect, и нулевое в противном случае.

Аргументы

q  point — объект структуры POINT или объект класса CPoint, положение которого требуется оценить.

Описание

Определяет, лежит ли данная точка в пределах прямоугольника, описываемого объектом класса CRect. Точка считается лежащей в пределах прямоугольника, описываемого объектом класса CRect, если она лежит на его левой или верхней стороне или находится внутри него. Точка, лежащая на правой или нижней сторонах данного прямоугольника считается находящейся за его пределами.

Для нормальной работы данной функции прямоугольник должен быть нормализован. Для нормализации прямоугольника необходимо вызвать функцию NormalizeRect до вызова данной функции.

CRgn

Класс CRgn содержит методы для работы с областями окон Windows с использованием интерфейса графических устройств. Область может иметь эллиптическую или прямоугольную форму. Для работы с областями окон совместно используются функции-члены класса CRgn и функции отсечения неотображаемых фрагментов класса CDC.

Функции класса CRgn позволяют создавать, изменять и получать информацию об областях окон Windows.

Описание данного класса содержится в файле заголовка afxwin. h.

Пример использования данного класса приведен в главе 4.

CreateRectRgnIndirect

BOOL CreateRectRgnIndirect(LPCRECT lpRect);

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

Ненулевое, в случае успешного завершения операции, и ноль в противном случае.

Аргументы

q  lpRect — указатель на объект структуры RECT или объект класса CRect, содержащий логические координаты левого верхнего и правого нижнего углов данной области.

Описание

Создает прямоугольную область и сохраняет ее в объекте класса CRgn. Размер области ограничен размером его сторон, каждая из которых не может превышать 32767 логических единиц, и объемом используемой данным объектом памяти, который не может превышать 64 КБ.

По окончании использования объекта класса CRgn, созданного функцией CreateRectRgnIndirect, приложение должно использовать функцию CGDIObject::DeleteObject для его удаления.

CRichEditView

Расширенное текстовое поле представляет собой окно, в котором пользователь может редактировать текст. Для вывода текста в данном окне могут быть использованы различные шрифты, введенный текст может форматироваться и в него могут включаться различные объекты OLE. Хотя расширенное текстовое поле и позволяет осуществлять форматирование текста, однако все необходимые для этого элементы пользовательского интерфейса должны быть созданы самим пользователем.

Класс CRichEditView, совместно с классами CRichEditDoc и CRichEditCntrItem, обеспечивают функционирование элемента управления расширенное текстовое поле в рамках заложенной в основу библиотеки MFC концепции документ/представление. Класс CRichEditView содержит методы для редактирования и форматирования текста. Класс CRichEditDoc позволяет работать со списками клиентов OLE используемыми в приложении. Класс CRichEditCntrItem обеспечивает доступ к клиентам OLE со стороны контейнера.

Использование расширенного текстового поля (а следовательно и объектов класса CRichEditCtrl и связанных с ним классов) возможно только при работе под управлением операционной системы Windows 95 или Windows NT версии 3.51 или более поздних версий данных операционных систем.

Описание данного класса содержится в файле заголовка afxrich. h.

Пример использования данного класса приведен в главе 8.

GetCharFormatSelection

CHARFORMAT2& GetCharFormatSelection();

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

Объект структуры CHARFORMAT2, содержащий текущие атрибуты форматирования выделенного участка текста.

Описание

Данная функция позволяет получить текущие атрибуты форматирования выделенного участка текста.

Хотя в библиотеке MSDN указано, что данная функция возвращает объект структуры CHARFORMAT, при попытке запомнить его в объекте данной структуры компилятор выдает сообщение о невозможности преобразования объекта структуры CHARFORMAT2 в объект структуры CHARFORMAT.

OnCharEffect

void OnCharEffect(DWORD dwMask, DWORD dwEffect);

Аргументы

q  dwMask — определяет параметры форматирования шрифтов, подлежащие изменению. Может представлять собой комбинацию следующих значений:

·  CFM_BOLD — используется значение флага CFE_BOLD в аргументе dwEffects;

·  CFM_COLOR — используется значение флага CFE_AUTOCOLOR в аргументе dwEffects;

·  CFM_ITALIC — используется значение флага CFE_ITALIC в аргументе dwEffects;

·  CFM_PROTECTED — используется значение флага CFE_PROTECTED в аргументе dwEffects;

·  CFM_STRIKEOUT — используется значение флага CFE_STRIKEOUT в аргументе dwEffects;

·  CFM_UNDERLINE — используется значение флага CFE_UNDERLINE в аргументе dwEffects.

q  dwEffect — содержит список операций форматирования. Может представлять собой комбинацию следующих значений:

·  CFE_AUTOCOLOR — цвет текста принимает значение, возвращаемое функцией GetSysColor (COLOR_WINDOWTEXT);

·  CFE_BOLD — текст отображается жирным шрифтом;

·  CFE_ITALIC — текст отображается курсивом;

·  CFE_STRIKEOUT — производится зачеркивание текста;

·  CFE_UNDERLINE — производится подчеркивание текста;

·  CFE_PROTECTED — устанавливается запрет на внесение изменений в параметры шрифта. При попытке внесения в него изменений посылается сообщение EN_PROTECTED.

Описание

Данная функция позволяет изменять формат символов в выделенном тексте.

OnParaAlign

void OnParaAlign(WORD wAlign);

Аргументы

q  wAlign — определяет формат абзаца. Может принимать одно из следующих значений:

·  PFA_LEFT — абзац выравнивается по левому краю;

·  PFA_RIGHT — абзац выравнивается по правому краю;

·  PFA_CENTER — абзац выравнивается по центру.

Описание

Данная функция осуществляет форматирование выделенного абзаца.

SetCharFormat

void SetCharFormat(CHARFORMAT2 cf);

Аргументы

q  cf — объект структуры CHARFORMAT2, содержащий новые атрибуты форматирования текста по умолчанию.

Описание

Данная функция позволяет установить атрибуты форматирования нового текста в объекте класса CRichEditView. В результате выполнения функции SetCharFormat изменяются только те атрибуты текста, которые определены в переменной dwMask аргумента cf.

Хотя в библиотеке MSDN указано, что аргументом данной функции является объект структуры CHARFORMAT, при попытке передачи аргумента данного типа компилятор выдает сообщение о невозможности преобразования объекта структуры CHARFORMAT в объект структуры CHARFORMAT2.

CScrollView

Класс CScrollView реализует все возможности класса CView, дополняя их возможностью прокрутки изображения в окне.

Чтобы реализовать возможности прокрутки изображения в любом классе, производном от класса CView достаточно перегрузить в нем функции обработки сообщений OnHScroll и OnVScroll, однако класс CScrollView позволяет использовать следующие возможности:

r  самостоятельно обрабатывает информацию о размерах окна и его рабочей области, а также о режимах отображения;

r  автоматически прокручивает изображение в ответ на сообщения, поступающие от полосы прокрутки;

r  автоматически прокручивает изображение в ответ на сообщения, поступающие от клавиатуры, обычной мыши и от колесика мыши IntelliMouse.

Для обработки сообщений от колесика мыши используются функции OnMouseWheel и OnRegisteredMouseWheel. В классе CScrollView реализация этих функции по умолчанию обеспечивает рекомендованную реакцию на сообщение WM_MOUSEWHEEL.

Чтобы обеспечить в пользовательском классе просмотра возможность автоматической прокрутки окна следует использовать в качестве его базового класса класс CScrollView вместо класса CView. Для определения размера прокручиваемой области в функциях CView::OnInitialUpdate и CView::OnInitialUpdate вызывается функция SetScrollSizes (для определения значений ее аргументов пользователю необходимо написать свой программный код).

Вызов функции SetScrollSizes позволяет установить режим отображения, общий размер прокручиваемой области и шаг вертикальной и горизонтальной прокрутки. Все размеры задаются в логических единицах. Логический размер области представления обычно определяется исходя из информации, хранящейся в документе, но в некоторых случаях используются фиксированные размеры области представления.

Шаг горизонтальной и вертикальной прокрутки задается в логических единицах. По умолчанию, если пользователь щелкает левой кнопкой мыши в полосе прокрутки за пределами бегунка, то представление прокручивается на страницу. Если пользователь щелкает по стрелкам прокрутки, расположенным на концах полосы прокрутки, то представление прокручивается на строку. По умолчанию страница представляет собой 1/10 от общего размера области представления, а строка — 1/10 от размера страницы. Чтобы изменить эти величины следует вызвать функцию SetScrollSizes. Например при установке параметров вертикальной прокрутки текста размер страницы может быть установлен таким образом, чтобы после прокрутки вниз первой строкой нового окна была бы последняя строка старого окна, а размер строки равнялся бы высоте текстовой строки, выведенной с использованием текущего шрифта.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15