Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод рекомендации АЯ 2 семестр2.docx
Скачиваний:
113
Добавлен:
23.03.2016
Размер:
1.14 Mб
Скачать

Кнопка, контрольный переключатель, радио кнопка

Сообщение, приходящее от элементов управления WM_COMMAND.

Младшее слово wParam содержит значение идентификатора элемента управления. Старшее слово wParam определяет действия с кнопкой (нотификационные сообщения), некоторые возможные значения:

BN_CLICKED // «Нажатие» на элемент

BN_PAINT // Перерисовка элемента

BN_DOUBLECLICKED // Двойной щелчок

BN_SETFOCUS // Элемент получил фокус ввода с клавиатуры

BN_KILLFOCUS // Элемент потерял фокус ввода с клавиатуры

Сообщения, которые можно посылать элементам:

BM_GETCHECK BM_SETCHECK BM_GETSTATE BM_SETSTATE BM_SETSTYLE BM_CLICK BM_GETIMAGE BM_SETIMAGE

Текстовое поле

Сообщение от текстового поля, аналогичное как для кнопок- WM_COMMAND.

Некоторые нотификационные сообщения от текстового поля (старшее слово wParam):

EN_SETFOCUS // Элемент получил фокус ввода с клавиатуры

EN_KILLFOCUS // Элемент потерял фокус ввода с клавиатуры

EN_CHANGE // Текст в текстовом поле изменен

Основные сообщения, которые можно посылать текстовым полям:

WM_SETTEXT // Поместить текст в текстовое поле

WM_GETTEXT // Извлечь текст из текстового поля

Примеры

Поместить текст в текстовое поле:

SendDlgItemMessage(hwnd, IDC_EDIT1, WM_SETTEXT, 0, (LPARAM)Text);

Получить текст из текстового поля:

SendDlgItemMessage(hwnd, IDC_EDIT2, WM_GETTEXT, 255, (LPARAM)Text);

До этого где- то объявлен массив символов, в котором текст хранится как строка: char Text[256];

Список

Элементами списка являются строки. Индексация элементов начинается с нуля. Сообщение от списка такое же, как для рассмотренных выше элементов- WM_COMMAND.

Коды некоторых нотификационных сообщений, приходящих от списка (старшее слово wParam):

LBN_SELCHANGE // Выбор элемента изменен

LBN_DBLCLK // Двойной щелчок на элементе списка

LBN_SETFOCUS // Элемент получил фокус ввода с клавиатуры

LBN_KILLFOCUS // Элемент потерял фокус ввода с клавиатуры

Коды некоторых сообщений, посылаемых списку:

LB_ADDSTRING // Добавить строку в список

LB_INSERTSTRING // Вставить строку в список

LB_DELETESTRING // Удалить элемент из списка

LB_SETCURSEL // Установить выбор заданного элемента

LB_GETCURSEL // Получить индекс выбранного элемента

LB_GETTEXT // Получить текст из элемента

LB_GETCOUNT // Получить число элементов списка

LB_RESETCONTENT // Очистить список

Примеры посылки сообщений списку

Добавить строку текста в список:

SendDlgItemMessage(hwnd, IDC_LIST1, LB_ADDSTRING, 0, (LPARAM)Text);

Получить индекс выделенного элемента:

int i=SendDlgItemMessage(hwnd, IDC_LIST1, LB_GETCURSEL, 0, 0);

Извлечь строку из элемента с индексом i:

SendDlgItemMessage(hwnd, IDC_LIST1, LB_GETTEXT, i, (LPARAM)Text);

Удалить элемент с индексом i:

SendDlgItemMessage(hwnd, IDC_LIST1, LB_DELETESTRING, i, 0);

Очистить список:

SendDlgItemMessage(hwnd, IDC_LIST1, LB_RESETCONTENT, 0, 0);

1.3. Задачи и порядок выполнения работы

Условие задачи:

Разработать приложение на основе диалогового окна – калькулятор для вычисления арифметических операций (+ -). Все проведенные операции добавляются в список, который может быть очищен при нажатии кнопки. Калькулятор может иметь примерный вид, представленный на рисунке 1 (в зависимости от варианта задания).

Рисунок 1 – Приложение типа калькулятор