- •"Combobox"
- •Void winapi InitCommonControls(void)
- •Idd_controlsdlg dialog 260, 200, 180, 120
- •Int apientry WinMain (hinstance hinstance, hinstance hPrevInstance,
- •Idd_controlsdlg dialog 260, 200, 180, 120
- •Idd_controlsdlg dialog 260, 200, 180, 120
- •Int apientry WinMain (hinstance hinstance, hinstance hPrevInstance, lpstr lpCmdLine, int nCmdShow)
http://www.functionx.com/win32/controls/combobox.htm
http://dims.karelia.ru/win32/
"Combobox"
Комбобокс - это помесь поля редактирования с окном-списком. Этот элемент содержит поле редактирование и список, который может отображаться все время либо "выпадать" при нажатии на кнопку рядом с полем редактирования. Есть три основных типа комбобоксов:
"выпадающий" комбобокс (CBS_DROPDOWN) содержит поле редактирования и "выпадающий" список;
"выпадающий" список (CBS_DROPDOWNLIST) не содержит поля для изменения текста;
простой комбобокс (CBS_SIMPLE) содержит поле редактирования и обычный список.
Обратите
внимание, что в ресурсах значение высоты
элемента определяет размер поля
редактирования вместе с "выпавшим"
списком по вертикали.
CONTROL "" 3, "COMBOBOX", CBS_DROPDOWN|CBS_AUTOHSCROLL|WS_VSCROLL, 5, 45, 60, 70
CONTROL "" 4, "COMBOBOX", CBS_DROPDOWNLIST|WS_VSCROLL, 70, 45, 60, 70
CONTROL "" 5, "COMBOBOX", CBS_SIMPLE|CBS_SORT, 135, 45, 60, 70
Короткий вариант этого же объявления ресурсов:
COMBOBOX 3, 5, 45, 60, 70, CBS_DROPDOWN|CBS_AUTOHSCROLL|WS_VSCROLL
COMBOBOX 4, 70, 45, 60, 70, CBS_DROPDOWNLIST|WS_VSCROLL
COMBOBOX 5, 135, 45, 60, 70, CBS_SIMPLE|CBS_SORT
Для работы с комбобоксами существуют сообщения, аналогичные списковым: CB_ADDSTRING, CB_DELETESTRING, CB_INSERTSTRING, CB_FINDSTRING, CB_GETCOUNT, CB_GETCURSEL, CB_RESETCONTENT. Комбобокс посылает родительскому диалогу сообщение оповещение WM_COMMAND со следующими кодами оповещения:
CBN_SELCHANGE, когда пользователь выделяет другую строку в комбобоксе (бывает полезным для простых комбобоксов);
CBN_SELENDOK, когда пользователь выбрал элемент в выпадающем списке и щелкнул мышкой по выделению (подтвердил выделение), для простых комбобоксов посылается перед каждым CBN_SELCHANGE;
CBN_SELENDCANCEL, когда пользователь закрыл выпадающий список, так и не выбрав никакой элемент;
CBN_DROPDOWN, когда открывается выпадающий список;
CBN_CLOSEUP, когда выпадающий список был закрыт по той или иной причине.
Кроме предопределенных управляющих элементов, Windows предоставляет еще набор стандартных управляющих элементов посредством библиотеки Common Controls Library (COMCTL32.DLL). Чтобы воспользоваться ей, в тест программы надо включить заголовочный файл commctrl.h и добавить в блок инициализации программы вызов функции:
Void winapi InitCommonControls(void)
Управляющие элементы из этой библиотеки, как правило, посылают сообщения-оповещения родительскому диалогу через сообщение WM_NOTIFY (wp=(int)idControl; lp=(LPARAM)(NMHDR*)pmnh - указатель на структуру со специльными параметрами сообщения-оповещения).
Классы управляющих элементов из Common Controls Library:
Поле со списком управления Окна из двух разделов. Есть два основных типа полей со списком: падение вниз и простые. Каждый состоит из двух секций.
Наиболее часто используется выпадающий называется падение вниз. На левой стороне, он изготовлен из окна редактирования. На правой стороне, он оснащен стрелкой вниз указывая:
Чтобы его использовать, пользователь должен нажать на стрелку. Это открывает список:
После обнаружения нужного пункта в списке, пользователь может щелкнуть по нему. Пункт нажал становится новый показывать в редактирования части контроля. Если пользователь не может найти нужный элемент в списке, он или она может нажмите стрелку вниз указывая или нажмите Esc. Это скрывает список и управления дисплеями, как раньше. Пользователь также может отображать список, привлечения внимания к контролю, а затем нажать Alt + клавишу со стрелкой вниз.
Второй общий тип комбинированного окна называют просто. Этот тип также из двух секций, но, вместо стрелкой вниз, используемый для отображения списка, это показывает свой список все время:
На этот раз, чтобы выбрать пункт, пользователь может просто найти его в списке и нажмите его.
В обоих типах полей со списком, если список слишком длинный для выделенного пространства, когда он отображает, список часть оснащена вертикальной полосы прокрутки. Это позволяет пользователю перемещаться вверх и вниз по списку, чтобы найти нужный пункт:
Три из них два основных способа создать поле со списком. Вы можете написать код или использовать сценарий. Чтобы создать поле со списком с кодом, вы можете сначала создать класс для Windows, который определяет дескриптор HWND и реализует поручения со списком.
Самый простой способ создать выпадающий список через скрипт ресурсов. Синтаксис, используемый для создания контроль в сценарий:
COMBOBOX ID, X, Y, ширина, высота [, стиль [, расширенный в стиле]]
Вы должны указать ComboBox как класс этого контроля
Идентификатор номер, используемый для идентификации контроля в файле заголовка ресурса
Х мера его горизонтального расположения по отношению к происхождению элемента управления, который находится в левом верхнем углу окна, на котором размещается поле со списком
Коэффициент у есть расстояние от происхождения элемента управления, который находится в левом верхнем углу окна, на котором размещается поле со списком, в верхнем левом углу окна со списком
Ширина и высота указать размеры коробки комбо
Дополнительный стиль и факторы продлен стиль используется для настройки и подготовки поведение выпадающего списка.
Практическая LearningPractical обучения: Создание Combo Box
Чтобы создать идентификатор в поле со списком, откройте файл заголовка ресурсов и изменить его следующим образом:
#define IDD_CONTROLSDLG 101
#define IDD_SIZE_CBO 102
Чтобы создать поле со списком, открыть сценарий ресурсов и изменить его следующим образом:
#include "resource.h"
