Среда, 08.01.2025, 21:03
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Visual C++ и MFC

Классы стандартных элементов управления. Статические элементы управления

Генеалогия


Описательства и украшательства...

В случаях, когда требуется вывести текст (например, заголовок другого элемента управления или поясняющий текст) или добавить какие-либо дополнительные рисованные элементы в блоке диалога, как правило, используются статические элементы управления.

Класс CStatic позволяет выводить на экран текстовые строки, различные закрашенные прямоугольники, значки, курсоры, битовые массивы (картинки) и расширенные метафайлы. Часто они используются для объединения или разделения других элементов управления.

Создание

CStatic( ); // Конструктор по умолчанию
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, Const RECT& rect,
CWnd* pParentWnd, UINT nID = 0xFFFF );
// Функция создает статический элемент управления и присоединяет его к
// объекту класса. Возвращает истину в случае удачного создания.
// Параметры:
// lpszText - задает текст, который должен быть помещен на элемент
// управления. Если параметр равен NULL, то текст выводится не будет.

// dwStyle - задает стиль статического элемента. Параметр может содержать
// комбинацию стилей, связанных операцией OR (|). Необходимо всегда
// указывать стиль WS_CHILD, т. к. элементы управления не могут быть
// окнами верхнего уровня. Для того чтобы элемент управления был видимым,
// сразу после отображения его родительского окна необходимо указать стиль
// WS_VISIBLE. Если нужно, чтобы созданный элемент управления был
// недоступен для использования, то можно указать стиль WS_DISABLE.

// Кроме того, необходимо использовать следующие стили (некоторые можно
// комбинировать с помощью побитового или "|"):
// SS_BLACKFRAME - задает прямоугольник с рамкой того же цвета, что и
// рамка окна (по умолчанию черный цвет).

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

// SS_GRAYFRAME - задает прямоугольник с рамкой того же цвета, что и цвет
// фона клиентской области родительского окна (для блоков диалога этот
// цвет по умолчанию серый).
// SS_ICON - задает значок для его отображения в родительском окне;
// передаваемый текст (параметр lpszText) является именем значка (но не
// именем файла !!!), определяемого в файле ресурсов; размеры элемента
// управления при этом игнорируются - их определяют размеры значка.
// SS_LEFT - определяет прямоугольник и выводит текст, выровненный по
// левому краю; текст форматируется до того, как он будет выведен на
// экран; слова, не помещающиеся на одной строке, автоматически
// переносятся на следующую, что, однако, не гарантирует отображения
// всего текста.
// SS_LEFTNOWORDWRAP - определяет прямоугольник и выводит текст,
// выровненный по левому краю; символы табуляции заменяются пробелами,
// но слова автоматически не переносятся на новую строку. В качестве
// символа переноса используются символы "\n"; текст, не помещающийся
// в строке, обрезается.
// SS_NOPREFIX - если этот стиль не определен, то Windows интерпретирует
// символ амперсанда (&) в тексте элемента управления, как префикс
// символа-акселератора; в этом случае символ "&" удаляется, а следующий
// за ним символ подчеркивается. Если данный стиль установлен, то символ
// "&" остается в тексте.

// SS_RIGHT - определяет прямоугольник и выводит текст, выровненный по
// правому краю; текст форматируется до того, как он будет выведен на
// экран; слова, не помещающиеся на одной строке, автоматически
// переносятся на следующую, что, однако, не гарантирует отображения
// всего текста.
// SS_SIMPLE - задает прямоугольник и выводит строку текста, выровненного
// по левому краю; строка текста не может быть укорочена или изменена.
// SS_USERITEM - статический элемент управления, определяемый
// пользователем.
// SS_WHITEFRAME - задает прямоугольник с рамкой, которая по умолчанию
// имеет белый цвет.
// SS_WHITERECT - задает закрашенный прямоугольник (по умолчанию белого
// цвета).
// Если необходимо вывести на экран битовый массив, значок курсор или
// метафайл, то нужно использовать следующие стили:
// SS_BITMAP - стиль для битовых массивов
// SS_ICON - стиль для курсоров и значков
// SS_ENHMETAFILE - стиль для расширенных метафайлов
// Для курсоров, битовых массивов или значков можно использовать стиль
// SS_CENTERIMAGE - располагает изображение в центре статического
// элемента управления

// rect - задает положение и размер статического элемента управления.

// pParentWnd - задает родительское окно объекта CStatic, обычно это
// объект класса CDialog. Этот параметр обязательно должен быть
// определен (не может быть NULL).

// nID - задает идентификатор статического элемента управления.
Отображение битового массива

HBITMAP GetBitmap( );
// Возвращает дескриптор битового массива, ранее установленного с
// помощью функции SetBitmap, в случае отсутствия связанного битового
// массива с элементом управления или в случае ошибки возвращается NULL.
HBITMAP SetBitmap( HBITMAP hBitmap );
// Задает дескриптор битового массива (параметр hBitmap) для его вывода
// в рамках статического элемента управления.
// Функция возвращает дескриптор предыдущего битового массива, связанного
// со статическим элементом управления, или NULL, если массива не было.

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

SS_BITMAP - всегда используется, когда выводится битовый массив.
SS_CENTERIMAGE - для центрирования изображения в рамках элемента
управления; если изображение больше элемента управления, то оно будет
обрезано; если наоборот, то оставшееся место вокруг изображения будет
заполнено цветом верхнего левого пикселя битового массива.
Отображение значка

HICON GetIcon( );
// Возвращает дескриптор значка, ранее установленного с помощью функции
// SetIcon или NULL.
HICON SetIcon( HICON hIcon );
// Задает дескриптор значка (параметр hIcon) для его вывода в рамках
// статического элемента управления.
// Функция возвращает дескриптор предыдущего значка, связанного со
// статическим элементом управления, или NULL, если значка не было.

Размер элемента управления будет изменен в ссответствии с размером значка. Для элемента, отображающего значок можно использовать следующие стили:

SS_ICON - всегда используется, когда выводится значок или курсор.
SS_CENTERIMAGE - для центрирования изображения в рамках элемента
управления; если изображение больше элемента управления, то оно будет
обрезано; если наоборот, то оставшееся место вокруг изображения будет
заполнено цветом фона статического элемента управления.
Отображение курсора

HCURSOR GetCursor( );
// Возвращает дескриптор курсора, ранее установленного с помощью функции
// SetCursor или NULL, если курсор не был установлен.
HCURSOR SetCursor( HCURSOR hCursor );
// Задает дескриптор курсора (параметр hCursor) для его вывода в рамках
// статического элемента управления.
// Функция возвращает дескриптор предыдущего курсора, связанного со
// статическим элементом управления, или NULL в противном случае.

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

Отображение расширенных метафайлов

HENHMETAFILE GetEnhMetaFile( );
// Возвращает дескриптор расширенного метафайла, ранее установленного
// с помощью функции SetCursor или NULL, если расширенный метафайл не
// был установлен.
HENHMETAFILE SetEnhMetaFile( HENHMETAFILE hMetaFile );
// Задает дескриптор расширенного метафайла (параметр hMetaFile) для
// его вывода в рамках статического элемента управления.
// Функция возвращает дескриптор предыдущего расширенного метафайла,
// связанного со статическим элементом управления, или NULL в
// противном случае.

Для элемента, отображающего метафайл, наряду с использованием стилей окон и статических элементов управления необходимо использовать следующий стиль:

SS_ENHMETAFILE - всегда используется при выводе расширенных метафайлов.
Категория: Visual C++ и MFC | Добавил: slava (26.09.2009)
Просмотров: 2693 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]