Поиск по сайту:



Проверить аттестат

Мы принимаем Яндекс.Деньги

Смотри также:

Как составить программу для игровой приставки "DENDY" - Статья.

MSDN по русски. Описание классов C++ .NET - Статья.

Как составить программу для "DENDY" - Статья.

MSDN по русски. Описание классов C++ .NET - Статья.

Все новинки...

Статья «MSDN по русски. Описание классов»

Поделиться:

1    2    3    4    5    6    7    8    9    10   

SetPos

int SetPos(int nPos);

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

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

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

void SetRange(short nLower, short nUpper); void SetRange32(int nLower, int nUpper);

Аргументы

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

Описание
Устанавливает верхний и нижний пределы диапазона линейного индикатора и перерисовывает индикатор, чтобы отразить внесенные в него изменения. Функция SetRange32 устанавливает 32-разрядные границы диапазона линейного индикатора.
CPropertyPage
Объект класса CPropertyPage представляет собой отдельную страницу окна свойств, иначе называемую вкладкой диалогового окна. Как и для стандартного диалогового окна для каждой его вкладки необходимо создать отдельный класс, производный от класса CPropertyPage. Чтобы использовать объекты данного класса необходимо сначала создать объект класса CPropertySheet, а затем включить в него объекты классов всех составляющих его вкладок. Чтобы добавить в диалоговое окно новую вкладку необходимо вызвать для объекта ее класса функцию CPropertySheet::AddPage, а затем вывести это диалоговое окно на экран, вызвав функцию CPropertySheet::DoModal для модального диалогового окна или CPropertySheet::Create для немодального диалогового окна.
Данное диалоговое окно может быть оформлено в стиле мастера, в котором диалоговое окно представляет собой последовательность вкладок, перемещение по которым происходит в определенной последовательности и управляется специальными кнопками в диалоговом окне. Такой тип окна часто применяется для установки программ и оборудования.
Описание данного класса содержится в файле заголовка afxdlgs.h.
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.
AddPage

void AddPage(CPropertyPage *pPage);

Аргументы

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);

Аргументы

nIDCaption - идентификатор заголовка диалогового окна с вкладками.
pParentWnd - указатель на родительское окно диалогового окна с вкладками. Если данный аргумент равен нулю, то родительским окном для данного окна будет главное окно приложения.
iSelectPage - индекс вкладки, которая должна быть открытой при открытии окна. По умолчанию раскрывается первая вкладка. Нумерация вкладок определяется порядком включения их в диалоговое окно.
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);

Аргументы

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

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

void SetWizardButtons(DWORD dwFlags);

Аргументы

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, и нулевое в противном случае.
Аргументы

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

Описание
Определяет, лежит ли данная точка в пределах прямоугольника, описываемого объектом класса CRect. Точка считается лежащей в пределах прямоугольника, описываемого объектом класса CRect, если она лежит на его левой или верхней стороне или находится внутри него. Точка, лежащая на правой или нижней сторонах данного прямоугольника считается находящейся за его пределами. Для нормальной работы данной функции прямоугольник должен быть нормализован. Для нормализации прямоугольника необходимо вызвать функцию NormalizeRect до вызова данной функции.
CRgn
Класс CRgn содержит методы для работы с областями окон Windows с использованием интерфейса графических устройств. Область может иметь эллиптическую или прямоугольную форму. Для работы с областями окон совместно используются функции-члены класса CRgn и функции отсечения неотображаемых фрагментов класса CDC. Функции класса CRgn позволяют создавать, изменять и получать информацию об областях окон Windows. Описание данного класса содержится в файле заголовка afxwin.h.
CreateRectRgnIndirect

BOOL CreateRectRgnIndirect(LPCRECT lpRect);

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

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.
GetCharFormatSelection

CHARFORMAT2& GetCharFormatSelection();

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

void OnCharEffect(DWORD dwMask, DWORD dwEffect);

Аргументы

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.
dwEffect - содержит список операций форматирования. Может представлять собой комбинацию следующих значений:
CFE_AUTOCOLOR - цвет текста принимает значение, возвращаемое функцией GetSysColor (COLOR_WINDOWTEXT);
CFE_BOLD - текст отображается жирным шрифтом;
CFE_ITALIC - текст отображается курсивом;
CFE_STRIKEOUT - производится зачеркивание текста;
CFE_UNDERLINE - производится подчеркивание текста;
CFE_PROTECTED - устанавливается запрет на внесение изменений в параметры шрифта. При попытке внесения в него изменений посылается сообщение EN_PROTECTED.

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

void OnParaAlign(WORD wAlign);

Аргументы

wAlign - определяет формат абзаца. Может принимать одно из следующих значений:
PFA_LEFT - абзац выравнивается по левому краю;
PFA_RIGHT - абзац выравнивается по правому краю;
PFA_CENTER - абзац выравнивается по центру.

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

void SetCharFormat(CHARFORMAT2 cf);

Аргументы

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

Описание
Данная функция позволяет установить атрибуты форматирования нового текста в объекте класса CRichEditView. В результате выполнения функции SetCharFormat изменяются только те атрибуты текста, которые определены в переменной dwMaskаргумента cf. Хотя в библиотеке MSDN указано, что аргументом данной функции является объект структуры CHARFORMAT, при попытке передачи аргумента данного типа компилятор выдает сообщение о невозможности преобразования объекта структурыCHARFORMAT в объект структуры CHARFORMAT2.
CScrollView
Класс CScrollView реализует все возможности класса CView, дополняя их возможностью прокрутки изображения в окне.

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

Для обработки сообщений от колесика мыши используются функции OnMouseWheel и OnRegisteredMouseWheel. В классе CScrollView реализация этих функции по умолчанию обеспечивает рекомендованную реакцию на сообщение WM_MOUSEWHEEL.
Чтобы обеспечить в пользовательском классе просмотра возможность автоматической прокрутки окна следует использовать в качестве его базового класса класс CScrollView вместо класса CView. Для определения размера прокручиваемой области в функциях CView::OnInitialUpdate и CView::OnInitialUpdate вызывается функция SetScrollSizes (для определения значений ее аргументов пользователю необходимо написать свой программный код).
Вызов функции SetScrollSizes позволяет установить режим отображения, общий размер прокручиваемой области и шаг вертикальной и горизонтальной прокрутки. Все размеры задаются в логических единицах. Логический размер области представления обычно определяется исходя из информации, хранящейся в документе, но в некоторых случаях используются фиксированные размеры области представления.
Шаг горизонтальной и вертикальной прокрутки задается в логических единицах. По умолчанию, если пользователь щелкает левой кнопкой мыши в полосе прокрутки за пределами бегунка, то представление прокручивается на страницу. Если пользователь щелкает по стрелкам прокрутки, расположенным на концах полосы прокрутки, то представление прокручивается на строку. По умолчанию страница представляет собой 1/10 от общего размера области представления, а строка - 1/10 от размера страницы. Чтобы изменить эти величины следует вызвать функцию SetScrollSizes. Например при установке параметров вертикальной прокрутки текста размер страницы может быть установлен таким образом, чтобы после прокрутки вниз первой строкой нового окна была бы последняя строка старого окна, а размер строки равнялся бы высоте текстовой строки, выведенной с использованием текущего шрифта.
Вместо прокрутки изображения в окне объект класса CScrollView может автоматически масштабировать область представления таким образом, чтобы ее размеры совпадали с размерами рабочей области окна. В этом режиме в окне отсутствуют полосы прокрутки. Чтобы использовать эту возможность нужно вызвать функцию CScrollView::SetScaleToFitSize (можно использовать функцию SetScaleToFitSize или SetScrollSizes, но не обе функции одновременно).
Перед вызовом функции OnDraw пользовательского класса представления объект класса CScrollView автоматически устанавливает начало координат объекта класса CPaintDC, передаваемого в качестве аргумента данной функции. Чтобы установить начало координат в прокручиваемом окне класс CScrollView перегружает функцию CView::OnPrepareDC. Это позволяет автоматически установить начало координат объекта класса CPaintDC передаваемого классом CScrollView своей функции OnDraw. При использовании пользователем объектов класса CClientDC и других подобных объектов классов контекста устройств ему необходимо самому вызывать функцию CScrollView::OnPrepareDC. Перегрузка функции CScrollView::OnPrepareDC позволяет установить перо, цвет фона и другие атрибуты контекста устройств, но в этой функции обязательно должен быть вызван метод базового класса для реализации процедуры масштабирования.
Различают следующие разновидности полос прокрутки:

стандартные полосы прокрутки, имеющие стиль окна, и устанавливаемые стилями WS_HSCROLL и WS_VSCROLL;
полосы прокрутки, добавляемые в главное окно приложения, содержащее данный объект класса представления. В этом случае главное окно приложения само посылает сообщения WM_HSCROLL и WM_VSCROLL активному объекту класса представления;
главное окно приложения передает сообщения прокрутки от объекта класса элемента управления CSplitterWnd активной панели разделенного окна (представлению). Если объект класса CSplitterWnd использует разделяемые полосы прокрутки, то объект класса CScrollView использует эту полосу прокрутки, а не создает новую.

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

void SetScrollSizes(int nMapMode, SIZE sizeTotal, const SIZE& sizePage = sizeDefault, const SIZE& sizeLine = sizeDefault);

Аргументы

nMapMode - режим отображения, установленный в данном объекте класса просмотра. Значения, которые может принимать данный аргумент перечислены в таблице П2.6.
Таблица П2.6. Характеристики режимов отображения

Режим отображения Логические единицы Направление по оси Y
MM_TEXT 1 элемент изображения Вниз
MM_HIMETRIC 0.01 мм Вверх
MM_TWIPS 1/1440 дюйма Вверх
MM_HIENGLISH 0.001 дюйма Вверх
MM_LOMETRIC 0.1 мм Вверх
MM_LOENGLISH 0.01 дюйма Вверх


Режим отображения Логические единицы Направление по оси Y
Все эти режимы определены в Windows. Класс CScrollView не использует два стандартных режима: MM_ISOTROPIC и MM_ANISOTROPIC. В библиотеке MFC предусмотрена функция SetScaleToFitSize, производящая масштабирование области представления к размерам рабочей области окна.
sizeTotal - общий размер прокручиваемой области представления. Переменная cx данного объекта структуры SIZE содержит ее размер по горизонтали, а переменная cy - ее размер по вертикали. Размеры определяются в логических единицах. Как переменная cx, так и переменная cy должны иметь значение большее либо равное нулю.
sizePage - шаг перемещения изображения по горизонтали или по вертикали при щелчке левой кнопкой мыши в полосе прокрутки за пределами бегунка. Переменная cx данного объекта структуры SIZE содержит шаг перемещения по горизонтали, а переменная cy - шаг перемещения по вертикали.
sizeLine - шаг перемещения изображения по горизонтали и по вертикали при щелчке левой кнопкой мыши по стрелкам полосы прокрутки. Переменная cx данного объекта структуры SIZE содержит шаг перемещения по горизонтали, а переменная cy - шаг перемещения по вертикали.

Описание
Функция SetScrollSizes вызывается при обновлении окна представления. Обычно она вызывается в функции OnUpdate для настройки параметров прокрутки, например при первом выводе документа на экран или при изменении его размеров. Обычно информация, на основании которой вычисляются размеры области представления, получается из связанного с данным представлением документа. Например, если размер документа возвращается функцией GetMyDocSize, вызов данной функции будет выглядеть следующим образом: SetScrollSizes(nMapMode, GetDocument()->GetMyDocSize()); В противном случае можно использовать фиксированный размер области представления, например: SetScrollSizes(nMapMode, CSize(100, 100)); В данной функции может использоваться любой режим отображения Windows, кроме MM_ISOTROPIC и MM_ANISOTROPIC. При использовании данных стилей вместо функции SetScrollSizes используется функция SetScaleToFitSize.
CSingleLock
Объекты класса CSingleLock используются для контроля доступа к ресурсам в приложении, использующем несколько потоков. Для работы с классами синхронизации CSemaphore, CMutex, CCriticalSection и CEvent необходимо создать объект класса CSingleLock или CMultiLock для ожидания и освобождения объекта класса синхронизации. Объект класса CSingleLock используется в том случае, когда необходимо работать только с одним объектом класса синхронизации. Объект классаCMultiLock используется в том случае, когда необходимо одновременно работать с несколькими объектами классов синхронизации. Для использования объект класса CSingleLock необходимо вызвать его конструктор в функции-члене класса контролируемого ресурса. После этого вызывается функция IsLocked для определения того, доступен ли данный ресурс. Если он доступен, то можно продолжать выполнение функции-члена класса контролируемого ресурса. Если ресурс недоступен, нужно или подождать его освобождения, или аварийно завершить данную функцию. После того, как использование ресурса будет завершено, необходимо или вызвать функцию Unlock, если предполагается дальнейшее использование объекта классаCSingleLock, или уничтожить объект данного класса. Класс CSingleLock не имеет базового класса. Описание данного класса содержится в файле заголовка afxmt.h.
IsLocked

BOOL IsLocked();

Возвращаемое значение
Ненулевое, если объект недоступен, и нулевое в противном случае.
Описание
Определяет является ли объект, связанный с данным объектом класса CSingleLock, неотмеченным (недоступным).
Lock

BOOL Lock(DWORD dwTimeOut = INFINITE);

Возвращаемое значение
Ненулевое, в случае успешного завершения работы функции, и нулевое в противном случае.
Аргументы

dwTimeOut - определяет интервал времени в течение которого данная функция будет ожидать отметки объекта синхронизации (его доступности). Если данный аргумент имеет значение INFINITE, то функция Lock будет ждать до тех пор, пока объект не станет доступным.

Описание
Данная функция позволяет получить доступ к ресурсу, контролируемому объектом синхронизации, указанным в конструкторе данного класса. Если объект синхронизации устанавливается в отмеченное состояние, функция Lock успешно завершает свою работу и поток, в котором она вызывается получает право собственности на объект. Если объект синхронизации находится в неотмеченном состоянии (недоступен), функция Lock ожидает его отметки в течение указанного в аргументе dwTimeOutпромежутка времени (измеряемого в миллисекундах). Если в течение этого промежутка времени объект синхронизации не отмечается, то функция Lock возвращает нулевое значение.
CSingleLock

CSingleLock(CSyncObject* pObject, BOOL bInitialLock = FALSE);

Аргументы

pObject - указатель на объект класса синхронизации, к которому необходимо обеспечить доступ. Не может иметь нулевое значение.
bInitialLock - определяет необходимость запросить доступ к объекту класса синхронизации при создании данного объекта.

Описание
Создает объект CSingleLock. Как правило, данный объект создается в функции-члене класса, осуществляющей доступ к разделяемому ресурсу.
Unlock

BOOL Unlock(); BOOL Unlock(LONG lCount, LPLONG lPrevCount = NULL);

Возвращаемое значение
Ненулевое, в случае успешного завершения работы функции, и нулевое в противном случае.
Аргументы

lCount - количество доступов, которые необходимо освободить. Значение данного аргумента должно быть больше нуля. Если указанное количество приведет к переполнению счетчика объектов значение счетчика не изменяется, а функция возвращает значение FALSE.
lPrevCount - указатель на переменную, в которую будет записано предыдущее значение счетчика синхронизации объектов. Если данный аргумент имеет значение NULL, то предыдущее значение счетчика не возвращается.

Описание
Освобождает объекты синхронизации, принадлежащие данному объекту класса CSingleLock. Эта функция вызывается деструктором класса CSingleLock. Если необходимо освободить более одного объекта в семафоре, используйте вторую версию данной функции и укажите число освобождаемых объектов.
CSliderCtrl
Линейный регулятор представляет собой окно, содержащее бегунок и метки шкалы. Метки шкалы могут не отображаться. Когда пользователь перемещает бегунок, используя мышь или клавиши управления курсором, данный элемент управления посылает сообщения о перемещении.
Этот элемент управления может использоваться для выбора дискретных или непрерывных значений из определенного диапазона значений. Например, линейный регулятор может использоваться для установки скорости повторения символов при нажатой клавише.
Класс CSliderCtrl обеспечивает функционирование линейного регулятора в операционной Windows. Этот элемент управления (а следовательно и класс CSliderCtrl) доступен только в программах, работающих под управлением Windows 95 и Windows NT версии 3.51 или более поздних версий данных операционных систем.
Бегунок линейного регулятора может перемещаться только на те приращения, которые определил пользователь при его создании. Например, если для данного линейного регулятора задан диапазон пять, то его бегунок может занимать только шесть позиций: крайнюю левую позицию в окне линейного регулятора и по одной позиции для каждого приращения в данном диапазоне. Обычно, каждая из этих позиций идентифицируется меткой шкалы.
При создании объекта класса линейного регулятора используется его конструктор и функция Create. После создания объекта данного класса необходимо использовать его функции для задания параметров его отображения и масштабных параметров. Эти параметры включают в себя минимальную и максимальную позицию для бегунка, шаг меток шкалы, шаг перемещения при нажатии клавиш управления курсором и начальную позицию бегунка.
Описание данного класса содержится в файле заголовка afxcmn.h.
GetPos

int GetPos() const;

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

int SetLineSize(int nSize);

Возвращаемое значение
Предыдущее значение размера строки.
Аргументы

nSize - новый размер строки в линейном регуляторе.

Описание
Данная функция используется для установления нового размера строки в линейном регуляторе. Этот параметр определяет шаг перемещения бегунка при обработке сообщений TB_LINEUP и TB_LINEDOWN. Эти сообщения посылаются соответствующими клавишами управления курсором.
SetPageSize

int SetPageSize(int nSize);

Возвращаемое значение
Предыдущее значение размера страницы.
Аргументы

nSize - новый размер страницы в линейном регуляторе.

Описание
Данная функция используется для установления нового размера страницы в линейном регуляторе. Этот параметр определяет шаг перемещения бегунка при обработке сообщений TB_PAGEUP и TB_PAGEDOWN. Эти сообщения посылаются клавишами управления курсором и .
SetRange

void SetRange(int nMin, int nMax, BOOL bRedraw = FALSE);

Аргументы

nMin - нижняя граница диапазона изменения.
nMax - верхняя граница диапазона изменения.
bRedraw - флаг перерисовки. Если этот аргумент имеет значение TRUE, то окно линейного регулятора будет перерисовано после установки новых параметров, в противном случае оно не будет перерисовано.

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

void SetTicFreq(int nFreq);

Аргументы

nFreq - шаг меток шкалы.

Описание
Данная функция устанавливает шаг меток шкалы, отображаемых в окне линейного регулятора. Например, если шаг меток шкалы задан равным двум, то метки шкалы отображаются для каждой второй позиции бегунка в окне линейного регулятора. По умолчанию эта величина равна единице (метка устанавливается у каждой позиции бегунка). Чтобы иметь возможность использовать данную функцию необходимо установить в функции CSliderCtrl::Create стиль TBS_AUTOTICKS.
CStatusBar
Объект класса CStatusBar представляет собой панель управления, состоящую из ряда панелей, содержащих текстовую информацию, или "индикаторов". Эти панели обычно используются для вывода сообщений и индикации различных состояний. Они используются, например, для вывода справочной информации о командах меню и индикации состояния клавиш , и .
В библиотеке MFC версии 4.0 появилась функция CStatusBar::GetStatusBarCtrl, позволяющая пользователю получить непосредственный доступ к элементу управления Windows. Непосредственное использование элемента управления Windows позволяет вносить в него изменения и использовать дополнительные возможности данного элемента управления. Функции-члены класса CStatusBar обеспечивают достаточно широкие возможности для работы с панелью инструментов, но функцияGetStatusBarCtrl позволяет использовать дополнительные возможности строки состояния в Windows 95. Функция GetStatusBarCtrl возвращает ссылку на объект класса CStatusBarCtrl.
Приложение хранит информацию об индикаторе строки состояния в массиве, в котором крайнему левому индикатору соответствует нулевой индекс. При создании объекта класса строки состояния используется массив идентификаторов индикаторов, который приложение связывает с соответствующим массивом индикаторов. После этого для доступа к индикатору может использоваться как его идентификатор, так и его индекс в массиве.
По умолчанию первый индикатор является "эластичным": он занимает все место, не занятое в строке состояния другими индикаторами. Таким образом другие панели индикаторов выравниваются по правому краю.
Чтобы создать в приложении строку состояния:
1. Создайте объект класса CStatusBar.
2. Вызовите функцию Create (или CreateEx), создающую в окне строку состояния Windows и связывающую ее с объектом класса CStatusBar.
3. Вызовите функцию SetIndicators, сопоставляющую каждой панели индикатора свой идентификатор.
Существует три способа обновления текста в панели строки состояния:

вызвать функцию CWnd::SetWindowText для обновления текста нулевой панели;
вызвать функцию CCmdUI::SetText в функции обработки сообщения ON_UPDATE_COMMAND_UI в классе строки состояния;
вызвать функцию SetPaneText для обновления текста в каждой панели.

Для изменения стиля панели строки состояния вызывается функция SetPaneStyle. Описание данного класса содержится в файле заголовка afxext.h.