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


 
Empty
void Empty();
Описание
Очищает объект класса CString и освобождает память в случае необходимости.
Format
void Format(LPCTSTR lpszFormat, ...);
void Format(UINT nFormatID, ...);
Аргументы
"sectiontableheader"lpszFormat - строка форматирования.
"sectiontableheader"nFormatID - идентификатор строкового ресурса, содержащий строку форматирования.
Описание
Данная функция позволяет записать в объект класса CString форматированную строку аналогично тому, как это делает функция sprintf для символьных массивов. В результате выполнения данной функции в объекте класса CString сохраняется форматированная последовательность символов и значений величин. Каждый дополнительный аргумент, если он присутствует, преобразуется и выводится в соответствии со спецификациями формата, содержащимися в аргументе lpszFormat или в строковом ресурсе, определяемом идентификатором nFormatID. Функция аварийно завершит свою работу, если в качестве аргумента функции Format будет указана сама строка. Например, выполнение следующего программного кода приведет к непредсказуемым результатам: CString str = "Some Data";
str.Format("%s%d", str, 345);
Если в качестве дополнительного аргумента передается строка символов, ее необходимо явным образом преобразовать к типу LPCTSTR. Строка форматирования имеет ту же форму и функцию, что и формат аргументов функции printf. В конец записанной строки символов добавляется нулевой символ.
LoadString
BOOL LoadString(UINT nID);
throw(CMemoryException);
Возвращаемое значение
Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.
Аргументы
"sectiontableheader"nID - идентификатор строкового ресурса Windows.
Описание
Считывает строковый ресурс Windows, определяемый аргументом nID, в существующий объект класса CString.
CToolBar
Объекты класса CToolBar представляют собой панели управления, представляющие собой ряд кнопок, на которых помещены битовые образы, между которыми могут находиться разделители. Кнопки панели инструментов могут действовать как обычные кнопки, переключатели или флажки. Обычно объекты класса CToolBar внедряются в объекты оконных классов, производных от класса CFrameWnd или от класса CMDIFrameWnd. В библиотеке MFC версии 4.0 появилась функция CToolBar::GetToolBarCtrl, позволяющая пользователю получить непосредственный доступ к элементу управления Windows. Непосредственное использование элемента управления Windows позволяет вносить в него изменения и использовать дополнительные возможности данного элемента управления. Функции-члены класса CToolBar обеспечивают достаточно широкие возможности для работы с панелью инструментов, но функция GetToolBarCtrl позволяет использовать дополнительные возможности панелей инструментов в Windows 95. Функция GetToolBarCtrl возвращает ссылку на объект класса CToolBarCtrl. Чтобы создать панель инструментов с помощью редактора ресурсов:
1.Создайте ресурс панели инструментов.
2.Создайте объект класса CToolBar.
3.Вызовите функцию Create (CreateEx) для создания панели инструментов Windows и связывания ее с объектом класса CToolBar.
4.Вызовите функцию LoadToolBar для загрузки ресурса панели инструментов.
Чтобы создать панель инструментов другим способом:
1.Создайте объект класса CToolBar.
2.Вызовите функцию Create (CreateEx) для создания панели инструментов Windows и связывания ее с объектом класса CToolBar.
3.Вызовите функцию LoadBitmap для загрузки битового образа, содержащего значки для кнопок панели инструментов.
4.Вызовите функцию SetButtons для установки стиля кнопок и сопоставьте каждой кнопке соответствующий ее битовый образ.
Все значки для кнопок панели инструментов хранятся в одном битовом образе. Все значки должны иметь одинаковые размеры. По умолчанию каждый значок имеет 16 элементов изображения в ширину и 15 элементов изображения в высоту. Значки должны располагаться в битовом образе без промежутков между ними.
Функция SetButtons получает указатель на массив идентификаторов элементов управления и целочисленную величину, определяющую количество элементов в массиве. Функция сопоставляет каждому идентификатору кнопки сегмент битового образа и назначает каждой кнопке индекс значка, определяющий положение значка кнопки в битовом образе. Если элемент массива имеет значение ID_SEPARATOR, ему не назначается никакого индекса значка.
Порядок значков в битовом образе обычно совпадает с порядком их отображения на экране, но с использованием функции SetButtonInfo порядок вывода значков может быть изменен.
Все кнопки в панели инструментов имеют одинаковый размер. По умолчанию их размер составляет 24х22 элементов изображения. Этот размер определен в документе Windows Interface Guidelines for Software Design. Дополнительное пространство, образовавшееся вследствие разницы размеров кнопки и значка, используется для формирования рамки вокруг значка.
Каждая кнопка имеет один значок. Все изображения на кнопке, отображающие ее состояние (нажата, отжата, недоступна, недоступна и нажата и промежуточное состояние) формируются из одного значка, связанного с кнопкой. Хотя битовый образ может иметь любой цвет, наилучшие результаты достигаются при использовании черного цвета и оттенков серого.
По умолчанию кнопки панели инструментов имитируют простые кнопки. Однако они могут имитировать также и переключатели и флажки. Флажки имеют три состояния: установлен, сброшен и неопределенное. Переключатели имеют только два состояния: установлен и сброшен.
Для установки стиля отдельной кнопки или разделителя без обращения к массиву сначала необходимо вызвать функцию GetButtonStyle, чтобы получить ее текущее состояние, а затем вызвать функцию SetButtonStyle вместо вызова функции SetButtons. Функцию SetButtonStyle целесообразно использовать при изменении стиля кнопки в процессе работы с приложением.
Если необходимо, чтобы в кнопке появился текст, вызовите функцию GetButtonText, чтобы получить текст, который должен быть выведен в кнопке, а затем вызовите функцию SetButtonText для установки текста.
Чтобы создать флажок в панели инструментов, необходимо использовать стиль TBBS_CHECKBOX или вызвать функцию CCmdUI::SetCheck при обработке сообщения ON_UPDATE_COMMAND_UI. Вызов функции SetCheck превращает обычную кнопку во флажок. Если аргумент функции SetCheck имеет значение 0, то флажок сбрасывается, если он имеет значение 1, то флажок устанавливается, а значение 2 соответствует неопределенному состоянию.
Чтобы создать переключатель, необходимо вызвать функцию CCmdUI::SetRadio при обработке сообщения ON_UPDATE_COMMAND_UI. При передаче функции SetRadio нулевого аргумента переключатель сбрасывается, в противном случае он устанавливается. Чтобы создать группу переключателей, необходимо создать функции обработки сообщения ON_UPDATE_COMMAND_UI для всех кнопок группы.
Описание данного класса содержится в файле заголовка afxext.h.
CreateEx
BOOL CreateEx(CWnd* pParentWnd, DWORD dwCtrlStyle = TBSTYLE_FLAT, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, CRect rcBorders = CRect(0, 0, 0, 0), UINT nID = AFX_IDW_TOOLBAR);
Возвращаемое значение
Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.
Аргументы
"sectiontableheader"pParentWnd - указатель на родительское окно панели инструментов.
"sectiontableheader"dwCtrlStyle - дополнительные стили для создания внедренного объекта класса CToolBarCtrl. По умолчанию этот аргумент имеет значение TBSTYLE_FLAT.
"sectiontableheader"dwStyle - стили панели инструментов.
"sectiontableheader"rcBorders - объект класса CRect, определяющий ширину рамки окна панели инструментов. По умолчанию этот аргумент имеет значение 0,0,0,0, поэтому окно панели инструментов не имеет рамки.
"sectiontableheader"nID - идентификатор дочернего окна панели инструментов.
Описание
Данная функция создает панель инструментов Windows (дочернее окно) и связывает ее с объектом класса CToolBar. Кроме того, она устанавливает заданное по умолчанию значение высоты панели инструментов. Использование функции CreateEx вместо функции Create позволяет устанавливать стили при создании внедренного объекта класса CToolBarCtrl. Например, если аргумент dwCtrlStyle имеет значение TBSTYLE_FLAT|TBSTYLE_TRANSPARENT, то создается панель инструментов в стиле Internet Explorer 4.0.
LoadToolBar
BOOL LoadToolBar(LPCTSTR lpszResourceName); BOOL LoadToolBar(UINT nIDResource);
Возвращаемое значение
Ненулевое, в случае успешного завершения функции, и нулевое в противном случае.
Аргументы
"sectiontableheader"lpszResourceName - указатель на имя ресурса загружаемой панели инструментов.
"sectiontableheader"nIDResource - идентификатор ресурса загружаемой панели инструментов.
Описание
Данная функция загружает панель инструментов (дочернее окно Windows) определяемую аргументом lpszResourceName или аргументом nIDResource.
 
« Предыдущая статья   Следующая статья »