
Лабораторная работа №3
СОЗДАНИЕ МНОГООКОННОГО ПРИЛОЖЕНИЯ НА ЯЗЫКЕ VC++ 6.0.
1. Цель работы: разработать многооконное приложение в среде Microsoft Developer Studio (Visual C++).
Краткие теоретические сведения.
2.1. Функция AfxMessageBox().
Данная функция предназначена для вывода сообщения пользователю. Синтаксис вызова функции следующий:
int AfxMessageBox( LPCTSTR Text, UINT Type = MB_OK, UINT IDIcon = 0);
где Text – текстовая строка сообщения, Type – тип набора кнопок, отображаемых в окне сообщения, IDIcon – тип иконки.
Параметр Type может иметь следующие значения, определяющие набор кнопок, отображаемых в окне сообщения:
MB_ABORTRETRYIGNORE – Кнопки Abort, Retry, и Ignore;
MB_OK – Кнопка OK (по умолчанию);
MB_OKCANCEL – Кнопки OK и Cancel;
MB_RETRYCANCEL – Кнопки Retry и Cancel;
MB_YESNO – Кнопки Yes и No;
MB_YESNOCANCEL – Кнопки Yes, No и Cancel.
Параметр IDIcon может иметь одно из следующих значений, определяющий вид изображения-иконки, отображаемого в окне сообщения:
-
MB_ICONEXCLAMATION
MB_ICONINFORMATION
MB_ICONQUESTION
MB_ICONSTOP
Возвращаемое значение: идентификатор нажатой кнопки, который будет представлен одним из следующих значений:
IDABORT – была нажата кнопка Abort;
IDCANCEL– была нажата кнопка Cancel;
IDIGNORE – была нажата кнопка Ignore;
IDNO – была нажата кнопка No;
IDOK – была нажата кнопка OK;
IDRETRY – была нажата кнопка Retry.
Примеры.
Вывод сообщения в окно с кнопкой OK:
AfxMessageBox(" Сообщение ");
или
AfxMessageBox(" Сообщение ",MB_OK);
Вывод сообщения в окно с кнопками OK и CANCEL:
AfxMessageBox(" Запустить? ",MB_OKCANCEL);
Добавление иконки слева от сообщения:
AfxMessageBox(" Ошибка отправки данных ", MB_RETRYCANCEL | MB_ICONSTOP );
Обработка возвращаемого значения функции:
if (AfxMessageBox(" Ошибка отправки данных ", MB_RETRYCANCEL)==IDCANCEL)
AfxMessageBox("нажата кнопка Cancel");
else
AfxMessageBox("нажата кнопка Retry");
2.2. Класс cListBox.
Данный класс предназначен для отображения текстовых строк в виде списка. Он позволяет добавлять текстовые строки в список и получать текст, содержащийся в каждой строке объекта класса CListBox. Ниже приведено описание некоторых методов класса CListBox.
Метод AddString() позволяет добавить одну строку в список. Синтаксис вызова данного метода следующий:
int AddString(LPCTSTR str);
где str – объект класса CString или массив типа char, содержащий текст, который будет занесен в добавляемую строку.
Возвращаемое значение: индекс добавленной строки в списке, начинающийся с нуля.
Пример.
// Добавление 10 строк в объект класса CListBox.
CString str;
for (int j = 0; j < 10; j++)
{ str.Format("item string %i", j);
m_myListBox.AddString(str);
}
Метод GetCount() определяет число строк в списке. Синтаксис вызова данного метода следующий:
int GetCount( );
Возвращаемое значение: количество элементов в списке.
Пример.
// Проверка, содержится ли в объекте класса CListBox 10 или более строк.
if (m_myListBox.GetCount() >= 10) оператор;
Метод GetText() получает одну строку из списка. Синтаксис вызова данного метода следующий:
int GetText(int Index,LPTSTR str );
где str – объект класса CString или массив типа char, предназначенный для получения текста из одной строки списка, содержащегося в объекте класса CListBox, Index – индекс строки списка.
Возвращаемое значение: длина полученной строки в символах.
Пример.
// Вывод всех строк из списка на экран в виде сообщений.
CString str;
for (i=0;i< m_myListBox.GetCount();i++)
{ m_myListBox.GetText(i,str);
AfxMessageBox(str);
}
Метод ResetContent() удаляет все элементы из списка. Синтаксис вызова данного метода следующий:
void ResetContent( );
Пример.
// Удаление всех строк из списка.
m_myListBox.ResetContent();