Следующие стили элемента управления окна со списком (в классе LISTBOX) могут быть определены в параметре dwStyle:
- LBS_DISABLENOSCROLL - Показывает заблокированную вертикальную линейку прокрутки в окне со списком, когда поле окна не содержит достаточно элементов для прокрутки. Если Вы не определяете этот стиль, линейка прокрутки скрыта, когда окно со списком не содержит достаточно элементов.
- LBS_EXTENDEDSEL - Позволяет многочисленным элементам быть выбранными, при помощи использования клавиши SHIFT и мыши или специальной комбинации клавиш.
- LBS_HASSTRINGS - Определяет, что окно со списком содержит элементы, состоящие из строк. Окно со списком сохраняет память и адреса строк, так что прикладная программа может использовать сообщение LB_GETTEXT, чтобы восстановить текст для отдельного элемента. По умолчанию, все окна со списком за исключением окон со списком предоставленных владельцем имеют этот стиль. Вы можете создать предоставляемое владельцем окно со списком с ним или без этого стиля.
- LBS_MULTICOLUMN - Определяет многостолбцовое окно со списком, которое прокручивается горизонтально. Сообщение LB_SETCOLUMNWIDTH устанавливает ширину столбцов.
- LBS_MULTIPLESEL - Включает или выключает выбор последовательности символов каждый раз, когда пользователь одним или двойным щелчком мыши активизирует строку символов в окне со списком. Пользователь может выбрать любое число строк.
- LBS_NODATA - Определяет "отсутствие данных" в окне со списком. Этот стиль определяется тогда, когда число элементов в окне со списком может превысить одну тысячу. Окно со списком с "отсутствующими данными" должно иметь также стиль LBS_OWNERDRAWFIXED, но не должно иметь стилей LBS_SORT или LBS_HASSTRINGS. Окно со списком с "отсутствующими данными" имеет сходство с окном со списком предоставляемым владельцем за исключением того, что оно не содержит ни строковых или растровых данных для элемента. Команды "добавить", "вставить" или "удалить" элемент всегда игнорируют любые передаваемые элементы данных; запрос на поиск строки внутри окна всегда терпит неудачу. Windows посылает сообщение WM_DRAWITEM окну владельцу, когда элемент должен быть прорисован. ЭлементID (itemID) член структуры DRAWITEMSTRUCT, переданный с сообщением WM_DRAWITEM, определяет номер строки элемента, который будет прорисован. Окно списка с "отсутствующими данными" не посылает сообщение WM_DELETEITEM.
- LBS_NOINTEGRALHEIGHT - Определяет, что размер окна со списком соответствует размеру, определенному прикладной программой, когда она создавала окно со списком. Обычно, Windows устанавливает величину окна со списком так, чтобы оно не отображало элементы частично.
- LBS_NOREDRAW - Определяет, что вид окна со списком не модифицируется, когда производятся изменения. Вы можете в любое время изменить этот стиль, посылая сообщение WM_SETREDRAW.
- LBS_NOSEL - Определяет, что окно со списком содержит элементы, которые могут просматриваться, но не выбираться.
- LBS_NOTIFY - Сообщает родительскому окну о входящем сообщении всякий раз, когда пользователь щелкает мышью или дважды щелкает по строке в окне списка.
- LBS_OWNERDRAWFIXED - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком появляются одинаковой высоты. Окно владельца принимает сообщение WM_MEASUREITEM, когда окно со списком создано, а сообщение WM_DRAWITEM, когда внешний вид окна изменился.
- LBS_OWNERDRAWVARIABLE - Определяет, что владелец окна со списком ответственен за прорисовку его содержания и что элементы в окне со списком появляются переменными по высоте. Окно владельца принимает сообщение WM_MEASUREITEM для каждого элемента в окне со списком, когда оно создано, а сообщение WM_DRAWITEM, когда внешний вид окна изменился.
- LBS_SORT - Сортирует строки в окне со списком по алфавиту.
- LBS_STANDARD - Сортирует строки в окне со списком в алфавитном порядке. Родительское окно принимает входящее сообщение всякий раз, когда пользователь щелкает мышью или дважды щелкает по строке. Окно со списком имеет, рамку со всех сторон.
- LBS_USETABSTOPS - Дает возможность окну списка распознавать и развернуть символы в виде таблицы при прорисовке его строк. По умолчанию таблица занимает 32 единицы измерения диалогового окна. Единица измерения диалогового окна - горизонтальное или вертикальное расстояние. Одна горизонтальная единица диалогового окна равна четвертой части текущей единицы измерения габаритов диалогового окна. Windows вычисляет эти единицы измерения, основанные на высоте и ширине шрифта существующей системы. Функция GetDialogBaseUnits возвращает значение текущей базовой единицы измерения диалогового окна в пикселях.
- LBS_WANTKEYBOARDINPUT - Определяет, что владелец окна списка принимает сообщения WM_VKEYTOITEM всякий раз, когда пользователь нажимает клавишу, а окно со списком имеет фокус ввода. Это дает возможность прикладной программе выполнить специальную обработку при вводе с клавиатуры.
Следующие стили линейки прокрутки (в классе SCROLLBAR) могут быть определены в dwStyle параметре:
- SBS_BOTTOMALIGN - Выравнивает нижнюю кромку линейки прокрутки с нижней кромкой прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию высоту для системных линеек прокрутки. Используйте этот стиль со стилем SBS_HORZ.
- SBS_HORZ - Обозначает горизонтальную линейку прокрутки. Если стили ни SBS_BOTTOMALIGN, ни SBS_TOPALIGN не определены, линейка прокрутки имеет высоту, ширину и позицию, определенные x, y, nWidth и nHeight.
- SBS_LEFTALIGN - Выравнивает левый край линейки прокрутки с левым краем прямоугольника, определенного параметрами x, y, nWidth и nHeight. Линейка прокрутки имеет заданную по умолчанию ширину для системных линеек прокрутки. Используйте этот стиль с SBS_VERT стилем.
- SBS_RIGHTALIGN - Выравнивает правый край линейки прокрутки с правым краем прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию ширину для системных линеек прокрутки. Используйте этот стиль с SBS_VERT стилем.
- SBS_SIZEBOX - Обозначает размер окна. Если Вы не определяете ни SBS_SIZEBOXBOTTOMRIGHTALIGN, ни SBS_SIZEBOXTOPLEFTALIGN стиль, размер окна имеет высоту, ширину и позицию, определенную параметрами x, y, nWidth и nHeight.
- SBS_SIZEBOXBOTTOMRIGHTALIGN - Выравнивает размер нижнего правого угла окна с нижним правым углом прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Размер окна имеет заданный по умолчанию размер для системы размера окон. Используйте этот стиль с SBS_SIZEBOX стилем.
- SBS_SIZEBOXTOPLEFTALIGN - Выравнивает размер верхнего левого угла окна с левым верхним углом прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Размер окна имеет заданный по умолчанию размер для системы размера окон. Используйте этот стиль с SBS_SIZEBOX стилем.
- SBS_SIZEGRIP - Подобен стилю SBS_SIZEBOX, но с выпуклой рамкой.
- SBS_TOPALIGN - Выравнивает верхний край линейки прокрутки с верхним краем прямоугольника, определенного параметрами x, y, nWidth, и nHeight. Линейка прокрутки имеет заданную по умолчанию высоту для системы линеек прокрутки. Используйте этот стиль с SBS_HORZ стилем.
- SBS_VERT - Обозначает вертикальную линейку прокрутки. Если Вы не определяете ни SBS_RIGHTALIGN, ни SBS_LEFTALIGN стиль, линейка прокрутки имеет высоту, ширину и позицию, определенную параметрами x, y, nWidth и nHeight.
Следующие стили статического элемента управления (в классе STATIC) могут быть определены в параметре dwStyle. Статический элемент управления может иметь только один из этих стилей:
- SS_BITMAP - Определяет, что в статическом элементе управления должен отобразиться точечный рисунок. Текст кода ошибки - имя точечного рисунка (не имя файла) определенного в другом месте файла ресурса. Стиль игнорирует параметры nWidth и nHeight; элемент управления автоматически устанавливает собственные размеры, чтобы поместить точечный рисунок.
- SS_BLACKFRAME - Определяет окно с рамкой, использующей тот же самый цвет, как и у рамки основного окна. Этот цвет черный по умолчанию в системе цветов Windows.
- SS_BLACKRECT - Определяет прямоугольник, заполненный текущим цветом рамки окна. По умолчанию этот цвет черный в системе цветов Windows.
- SS_CENTER - Определяет простой прямоугольник и выравнивает по центру текст кода ошибки в прямоугольнике. Текст форматируется перед отображением его на экране. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей центрированной строки.
- SS_CENTERIMAGE - Определяет, что средняя точка статического элемента управления со стилем SS_BITMAP или SS_ICON должна остаться фиксированной, когда элемент управления изменяется. Четыре стороны корректируются так, чтобы поместить новый точечный рисунок или пиктограмму. Если статический элемент управления имеет стиль SS_BITMAP, а точечный рисунок меньше чем рабочая область элемента управления, рабочая область заполняется цветом пикселя левого верхнего угла точечного рисунка. Если статический элемент управления имеет стиль SS_ICON, пиктограмма появляется, но не окрашивает рабочую область.
- SS_GRAYFRAME - Определяет поле окна с рамкой, выведенной тем же самым цветом, что и экранный фон (рабочий стол). По умолчанию в системе цветов Windows этот цвет серый.
- SS_GRAYRECT - Определяет прямоугольник, заполненный текущим экранным цветом фона. По умолчанию в системе цветов Windows этот цвет серый.
- SS_ICON - Определяет пиктограмму, отображаемую в диалоговом окне. Данный текст - имя пиктограммы (не имя файла) определенный в другом месте файла ресурса. Стиль игнорирует параметры nWidth и nHeight; пиктограмма автоматически устанавливает свою величину.
- SS_LEFT - Определяет простой прямоугольник и выравнивание по левому краю текста, помещенного в прямоугольнике. Текст форматируется перед его отображением. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей выровненной по левой границе строки.
- SS_LEFTNOWORDWRAP - Определяет простой прямоугольник и выравнивание по левому краю текста, помещенного в прямоугольнике. Планшеты расширяются, но слова не переносятся. Текст, который выходит за пределы конца строки, отсекается.
- SS_METAPICT - Определяет, что изображение метафайла должно отобразиться в статическом элементе управления. Данный текст - имя изображения метафайла (не имя файла) определенный в другом месте в файле ресурса. Статический элемент управления метафайла имеет фиксированный размер; изображение метафайла масштабируется, чтобы приспособить рабочую область статического элемента управления.
- SS_NOPREFIX - Предотвращает интерпретацию любого символа амперсанта (&) в тексте элемента управления как символа префикса акселератора. Они отображаются с удаленным амперсантом и следующим за ним подчеркнутым символом в строке. Этот стиль статического элемента управления может быть включен с любым из определенных статических элементов управления. Прикладная программа может объединять SS_NOPREFIX с другими стилями, используя поразрядный оператор OR = ИЛИ (|). Это может быть полезно, когда имена файлов или другие строки, которые могут содержать амперсант (&) должны отображаться в статическом элементе управления диалогового окна.
- SS_NOTIFY - Посылает родительскому окну уведомительные сообщения STN_CLICKED и STN_DBLCLK, когда пользователь щелкает или дважды щелкает мышью по элементу управления.
- SS_RIGHT - Определяет простой прямоугольник и выравнивает по правому краю текста помещенный в прямоугольнике. Текст форматируется перед его отображением на экране. Слова, которые выходят за пределы конца строки автоматически переносятся в начало следующей выровненной по правой границе строки.
- SS_RIGHTIMAGE - Определяет, что угол правой нижней части статического элемента управления со стилем SS_BITMAP или SS_ICON должен остаться фиксированным, когда элемент управления изменяется. Только верхняя и левая стороны корректируются, чтобы поместить новый точечный рисунок или пиктограмму.
- SS_SIMPLE - Определяет простой прямоугольник и отображает одиночную строку выровненного по левой границе текста в прямоугольнике. Текстовая строка не может быть, сокращена или изменена в любом случае. Родительское окно панели управления или диалоговое окно не должны обрабатывать сообщение WM_CTLCOLORSTATIC.
- SS_WHITEFRAME - Определяет поле окна с рамкой, выведенной тем же самым цветом как фон окна. По умолчанию, в системе цветов Windows - этот цвет белый.
- SS_WHITERECT - Определяет прямоугольник, заполненный текущим цветом фона окна. По умолчанию, в системе цветов Windows - этот цвет белый.
Ниже перечислены стили диалогового окна, которые могут быть определены в параметре dwStyle:
- DS_3DLOOK - Обеспечивает диалоговое окно не полужирным шрифтом и выводит трехмерные рамки вокруг элементов управления окна в блоке диалога.
- DS_3DLOOK - Этот стиль требуется только базирующимся на Win32 прикладным программам, компилируемым для версий Windows ранее, чем Windows 95 или Windows NT 4.0. Система автоматически применяет трехмерный вид к диалоговым окнам, созданным прикладными программами, компилируемыми для текущих версий Windows.
- DS_ABSALIGN - Указывает, что координаты диалогового окна - экранные координаты; иначе, Windows принимает их за координаты пользователя.
- DS_CENTER - Выравнивает по центру диалоговое окно в рабочей области; то есть в области, не загораживаемой панелью.
- DS_CENTERMOUSE - Выравнивает по центру курсор мыши в диалоговом окне.
- DS_CONTEXTHELP - Включает вопросительный знак в строке заголовка диалогового окна. Когда пользователь щелкает мышью по вопросительному знаку, курсор изменятся на вопросительный знак со стрелкой-указателем. Если пользователь затем щелкает мышью по элементу управления в диалоговом окне, элемент управления принимает сообщение WM_HELP. Элемент управления должен передать сообщение для диалоговой процедуры, которая должна вызвать функцию WinHelp, использующую команду HELP_WM_HELP. Прикладная программа Справка (Help) отображает выскакивающее окно, которое обычно содержит справку об элементе управления. Обратите внимание, что DS_CONTEXTHELP - только метка - заполнитель. Когда диалоговое окно создано, система проверяет наличие DS_CONTEXTHELP и, если она имеется, добавляет WS_EX_CONTEXTHELP к расширенному стилю диалогового окна. WS_EX_CONTEXTHELP не может использоваться со стилями WS_MAXIMIZEBOX или WS_MINIMIZEBOX.
- DS_CONTROL - Создает диалоговое окно, которое работает также как дочернее окно другого диалогового окна, очень похожее на страницу в окне свойств. Этот стиль позволяет пользователю перемещаться среди элементов управления дочернего диалогового окна, использовать его клавиши-ускорители, и так далее.
- DS_FIXEDSYS - Использует SYSTEM_FIXED_FONT вместо SYSTEM_FONT.
- DS_LOCALEDIT - Применяется только для 16-разрядных прикладных программ. Этот стиль управляет элементами редактирования в диалоговом окне, чтобы зарезервировать память в сегменте данных прикладной программы. Иначе, элементы редактирования резервируют память объекта глобальной памяти.
- DS_MODALFRAME - Создает диалоговое окно с модальной рамкой диалогового окна, которая может быть объединена со строкой заголовка и меню окна, путем определения стилей WS_CAPTION и WS_SYSMENU.
- DS_NOFAILCREATE - Создает диалоговое окно, даже если происходят ошибки - например, если дочернее окно не может быть создано или если система не может создать специальный сегмент данных для элементов редактирования.
- DS_NOIDLEMSG - Подавляет сообщения WM_ENTERIDLE, которое Windows иначе послал бы владельцу диалогового окна, в то время как диалоговое окно отображается на экране.
- DS_RECURSE - Стиль Диалогового окна для подобно элементу управления диалоговых окон.
- DS_SETFONT - Указывает, что шаблон диалогового окна (структура DLGTEMPLATE) содержит два дополнительных элемента, определяющих имя шрифта и размер в пунктах. Соответствующий шрифт используется, чтобы отображать текст внутри рабочей области диалогового окна и внутри элементов управления диалогового окна. Windows передает дескриптор шрифта диалоговому окну и каждому элементу управления, посылая им сообщение WM_SETFONT.
- DS_SETFOREGROUND - Не применяется в16-разрядных версиях Microsoft Windows. Этот стиль приводит диалоговое окно в активный режим. Внутри Windows вызывает для диалогового окна функцию SetForegroundWindow.
- DS_SYSMODAL - Создает системно-модальное диалоговое окно. Этот стиль заставляет диалоговое окно иметь стиль WS_EX_TOPMOST, но в остальном, он не имеет никакого влияния на диалоговое окно или поведение других окон в системе, когда отображается диалоговое окно.
Windows 95: система может поддерживать максимум 16,364 дескрипторов окна.
Смотри также
CharToOem, CLIENTCREATESTRUCT, CreateDialog, CREATESTRUCT, CreateWindowEx, DialogBox, DLGTEMPLATE, DRAWITEMSTRUCT, GetDialogBaseUnits, GlobalAddAtom, LB_GETTEXT, LB_SETCOLUMNWIDTH, MessageBox, RegisterClass, SetForegroundWindow, WM_COMMAND, WM_CREATE, WM_DELETEITEM, WM_DRAWITEM, WM_ENTERIDLE, WM_GETMINMAXINFO, WM_MEASUREITEM, WM_NCCREATE, WM_PAINT, WM_SETFONT, WM_SETREDRAW, WM_VKEYTOITEM
Размещение и совместимость CreateWindow
Windows NT Да
Win95 Да
Win32s Да
Импортируемая библиотека user32.lib
Заголовочный файл winuser.h
Unicode WinNT
Замечания по платформе Не имеется
Дополнительные материалы на сайте:
- "Шаг 4 - Окно Windows на С"
- "N/A"
- "N/A"
- "N/A"