Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Основы работы со списками






 

Продолжая исследование свойств диалога, добавим в диалог из предыдущего примера еще один элемент управления. Одним из часто используемых элементов управления является список (list box). Оператор задания списка LISTBOX имеет вид:

 

LISTBOX ID, X, Y, Width, Height[, стиль]

 

Здесь ID является идентификатором списка, координаты левого верхнего угла задаются значениями X и Y, а размеры – значениями Width и Height. Стиль определяет тип списка (используемые здесь значения приведены в табл. 5.1).

Изменим определение диалога в файле Mydialog.rc, чтобы добавить список. Во-первых, добавим описание списка:

 

LISTBOX ID_LB1, 2, 10, 47, 28, LBS_NOTIFY | WS_CHILD |

WS_VISIBLE | WS_BORDER | WS_VSCROLL|WS_TABSTOP

 


Далее добавим следующую кнопку:

 

PUSHBUTTON " Выбери фрукт", IDD_SELFRUIT, 2, 45, 50,

14, WS_GHILD | WS_VISIBLE | WS_TABSTOP

 

Наконец, изменим положение кнопок Красный и Зеленый так, чтобы начало кнопки Красный располагалось в точке 57, 45, а кнопки Зеленый – в точке 95, 45. После внесения изменений описание диалога должно выглядеть так:

 

MYDB DIALOG 18, 18, 142, 92

CAPTION " Первый диалог"

STYLE DS_MODALFRAME|WS POPUP|WS_CAPTION|WS_SYSMENU

{

DEFPUSHBUTTON " Красный", IDD_RED, 57, 45, 36, 14,

WS_CHILD|WS_VISIBLE|WSJTABSTOP

PUSHBUTTON " Зеленый", IDD_GREEN, 95, 45, 36, 14,

WS_CHILD|WS_VISIBLE|WS_TABSTOP

PUSHBUTTON " Сброс", IDCANCEL, 52, 65, 37, 14,

WS_CHILD|WS_VISIBLE|WS_TABSTOP

PUSHBUTTON " Выбери фрукт", IDD_SELFRUIT, 2, 45, 50, 14,

WS_CHILD|WS_VISIBLE|WS_TABSTOP

LISTBOX ID_LB1, 2, 10, 47, 28, LBS_NOTIFY|WS_CHILD|

WS_VISIBLE|WS_BORDER|WS_VSCROLL|WS_TABSTOP

}

 

Необходимо также добавить макроимена в файл Mydialog.h:

 

#define IDD_SELFRUIT 105

#define ID_LB1 106

 

Здесь ID_LB1 – идентифицирует список, а IDD_SELFRUIT – кнопку Выбери фрукт, которые введены в диалог.

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

Списки могут генерировать различные сообщения. Мы будем использовать только одно: LBN_DBLCLK. Это сообщение генерируется в результате двойного щелчка мышью на одном из элементов списка и содержится в HIWORD(wParam), когда список передает в диалоговую функцию сообщение WM_COMMAND. (Список при этом должен иметь стиль LBS_NOTIFY – в числе прочих.) После того, как пользователь сделал выбор элемента двойным нажатием мыши, необходимо запро­сить список, какой именно элемент был выбран.


В отличие от кнопки список является элементом управления, который не только генерирует сообщения, но и получает их. Существуют несколько типов сообщений, которые можно передавать списку. В нашем примере будем использоваться только два, которые приведены в таблице 5.2.

 

Таблица 5.1


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал