Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМИиП - Лабораторный практикум на Visual C++ 20...doc
Скачиваний:
2
Добавлен:
13.08.2019
Размер:
650.75 Кб
Скачать

If (m_Add) //если true, то добавление записи

{

m_Add=FALSE; //сброс флажка

UpdateData(TRUE);//передача данных из полей в буфер записи

if (m_pSet->CanUpdate())//проверка возможн. обновления базы

m_pSet->Update();//добавл. новой записи к источнику данных

m_pSet->Requery(); //формирование новой выборки данных

UpdateData(FALSE); //передача данных из буфера в поля

return TRUE;

}

else //m_Add==FALSE и обычный переход на след. запись

return CRecordView::OnMove(nIDMoveCommand);

}

- Добавить текст функции OnRecordDeleterecord():

void ClabDbView::OnRecordDeleterecord()

{

m_pSet->Delete(); //удаление записи

m_pSet->MoveNext(); //переход к отображению след. записи

if (m_pSet->IsEOF()) //проверка конца последоват. записей

m_pSet->MoveLast(); //TRUE - указатель на последнюю запись

if (m_pSet->IsBOF()) //проверка на единственную запись

m_pSet->SetFieldNull(NULL);//TRUE– устан. полей в NULL

UpdateData(FALSE);//обновление содержания окна представ.

}

- Откомпилировать и запустить приложение. Для добавления записи щелкнуть на команде Record->Add Record. Появится пустая запись. Ввести данные новой записи и щелкнуть на команде перехода к другой записи. Новая запись запишется в базу данных. Для удаления записи щелкнуть на команде Record->Delete Record. Текущая запись исчезнет с экрана и появится другая запись базы данных.

5.3. Блок по теме «Программирование для Internet»

labBrowser «Приложение в стиле браузера»

Цель работы – создание приложения в стиле браузера, в котором можно просматривать Web-страницы при переходе по гиперссылкам и адресам URL.

Создание приложения облегчается тем, что в состав Visual C++ входит Microsoft Internet Explorer и ,поэтому, достаточно включить в приложение его компонент WebBrowser – элемент управления на базе ActiveX, поддерживающий просмотр Web-страниц. Альтернативным более удобным способом создания приложения в стиле Web-браузера является использование мастера MFC App Wizard – класса CHtmlView, как основного интерфейса, позволяющего обращаться из программы к функциям браузера.

Для создания MFC-приложения в стиле Web-браузера необходимо выполнить следующие этапы.

Создание проекта приложения

- В стартовой странице Start Page щелкнуть на кнопке New. Выбрать в списке Project Types папку Visual C++ Project MFC, а в списке Templates – MFC Application. Ввести имя проекта labBrowser и проверить в поле Location аналогичное имя папки для хранения проекта . Щелкнуть на кнопке OK. Появится окно MFC Application Wizard - labBrowser.

- Выполнить настройку приложения. На вкладке Application Type выбрать Single Document. Переключатель Use of MFC выбрать static. На вкладке Generated Classes в поле Base class щелкнуть на CHtmlView, а затем - на кнопке Finish, обеспечивая настройку остальных этапов по умолчанию. Появится окно Start Page с открытым проектом.

- Установить язык Русский. Для этого выбрать вкладку Resources View, раскрыть папки labBrowser.rc и Menu, щелкнуть на идентификаторе IDR_MAINFRAME, а в появившемся окне Properties выбрать у свойства Language значение Русский.

Добавление нового меню Браузер с командами

Вперед и Назад

- Открыть редактор меню. Для этого щелкнуть на вкладке Resource View, затем открыть папки labBrowser.rc и Menu и дважды щелкнуть на строке IDR_MAINFRAME. Выводятся команды главного меню.

- Удалить команды главного меню Раскрыть меню File и удалить команды меню, оставив команду Exit. Удалить меню Edit. Для удаления команды щелкнуть на ней и нажать клавишу Delete.

- Добавить новое меню Браузер. Щелкнуть на пустом поле Type Here справа, ввести строку Браузер и нажать Enter. Перетащить с помощью мыши меню Браузер в позицию после меню File. Открыть окно Properties для нового меню и проверить наличие в свойстве Caption значение Браузер. Свойство Popup должно иметь значение True (наличие подменю).

- Добавить команды меню Браузер Вперед и Назад. В редакторе меню щелкнуть на пункте Браузер. Редактор меню уже включил внизу команд меню пустое поле Type Here. Щелкнуть на нем и ввести строку Вперед. Открыть окно Properties для новой команды и проверить наличие в свойстве Caption значения Вперед. Для определения идентификатора новой команды щелкнуть сначала на какой-нибудь команде меню, а затем - снова на новой команде Вперед. В свойстве ID окна Properties появится ID_. Добавить к строке ID_ слово BR_VPER для получения идентификатора ID_BR_VPER. Аналогично добавить команду Назад с ID_BR_NAZ.

Подключение команд меню Браузер к приложению.

- Подключить команду Вперед. Открыть редактор меню и щелкнуть правой кнопкой на команде Вперед и в открывшемся контекстном меню выбрать команду Add Event Handler (добавить обработчик события). Откроется окно Event Handler Wizard – labBrowser. Выбрать в списке Message Type сообщение Command, а в списке Class list – ClabBrowserView. В поле Function handler name появится имя функции-обработчика OnBrVper, созданное из идентификатора команды ID_BR_VPER, расположенного в поле Command name. Щелкнуть на кнопке Edit Code и в окне редактора кода откроется шаблон созданной функции.

- Аналогично подключить команду Назад с получением функции – обработчика OnBrNaz.

Добавление кода функций-обработчиков

- Добавить в функцию-обработчик OnBrVper() вызов функции GoForward() класса CHtmlView:

void ClabBrowserView::OnBrVper()

{

GoForward();

}

- Добавить в функцию-обработчик OnBrNaz() вызов функции GoBack() класса CHtmlView:

void ClabBrowserView::OnBrNaz()

{

GoBack();

}

Компиляция, запуск и тестирование приложения

- Скомпилировать и запустить приложение. Выводится основная страница Microsoft по адресу http://www.microsoft.com. Это реализуется функцией OnInitialUpdate(), вызывающей функцию Navigate2 класса CHtmlView:

void ClabBrowserView::OnInitialUpdate()

{

CHtmlView::OnInitialUpdate();

Navigate2(_T("http://www.msdn.microsoft.com/visualc/"),

NULL,NULL);

}

- Выполнить переходы по ссылкам на другие страницы.

- Протестировать передвижение по списку просмотренных страниц вперед и назад с помощью команд Вперед и Назад меню Браузер.

labHTTP «Приложение с протоколом HTTP в WinInet»

Цель работы – программное использование протокола HTPP для получения HTML-кода Web-страницы с поддержкой технологии WinInet. Пусть требуется скачать HTML-код основной страницы Microsoft по адресу http://www.microsoft.com.

В диалоговом окне будет находиться кнопка Получение Web - страницы, текстовое поле и надпись Текст Web-страницы.

labHTTP

Текст Web-страницы

Получение Web-страницы OK

Cansel

При щелчке на кнопке Получение Web-страницы в текстовое поле выводится HTML-код страницы Microsoft.

Для создания приложения выполнить следующие этапы.

Создание проекта приложения

- В стартовой странице Start Page щелкнуть на кнопке New. Выбрать в списке Project Types папку Visual C++ Project MFC, а в списке Templates – MFC Application. Ввести имя проекта labHTTP и проверить в поле Location аналогичное имя папки для хранения проекта . Щелкнуть на кнопке OK. Появится окно MFC Application Wizard - labHTTP.

- Выполнить настройку приложения. На вкладке Application Type выбрать Dialog based. Переключатель Use of MFC выбрать static. Затем щелкнуть на кнопке Finish, обеспечивая настройку остальных этапов по умолчанию. Появится окно Start Page с открытым проектом.

- Установить язык Русский. Для этого выбрать вкладку Resources View, раскрыть папки labHTTP.rc и Dialog, щелкнуть на идентификаторе IDD_LABHTTP_DIALOG, а в появившемся окне Properties выбрать у свойства Language значение Русский.

Добавление элементов управления в диалоговое окно

В нашем примере необходимо добавить

- Открыть диалоговое окно при его отсутствии. Для этого щелкнуть на вкладке Resource View, открыть папки labHTTP.rc, Dialog и дважды щелкнуть на идентификаторе IDD_LABHTTP_DIALOG. Появляется диалоговое окно. Убрать надпись “TODO: Place dialog controls here”, щелкнув на ней и нажав клавишу Delete.

- Добавить в диалоговое окно элементы управления: текстовое поле, надпись Текст Web-страницы, кнопку с надписью Получение Web-страницы. Щелкнуть сначала на инструменте Edit Control (текстовое поле) панели инструментов Toolbox, а затем - в выбранной области диалогового окна. Появляется текстовое поле с надписью Sample edit box. Изменить размеры текстового поля, щелкнув в текстовом поле и пользуясь появившимися маркерами размеров (рамка с квадратами). Аналогично добавить кнопку и надпись.

- Изменить надписи элементов управления. Требуется изменить надпись кнопки Button1 на Получение Web-страницы. Щелкнуть на кнопке и ввести в нее строку Получение Web-страницы. Проверить значение свойства Caption.

Связывание элементов управления диалогового окна с

функциями-обработчиками сообщений

Требуется связать сообщение кнопки Получение Web-страницы с функцией – обработчиком.

- Открыть окно Class View и щелкнуть на имени класса ClabHTTPDlg. Появится окно свойств Properties.

- Щелкнуть на кнопке Event (События) и в появившемся списке идентификаторов раскрыть узел IDC_BUTTON1 (щелкнуть на символе +). Появляется список сообщений

- Выбрать элемент BN_CLICKED, а в комбинированном списке справа от идентификатора щелкнуть на команде <Add> OnBnClickedButton1. Прототип новой функции-обработчика OnBnClickedButton1() будет добавлен в файл Dlg.h, а ее текст – в файл Dlg.cpp.

Связывание переменных класса с элементами окна

Требуется связать переменную m_text с текстовым полем.

- Запустить мастер Add Member Variable Wizard. Для этого открыть окно Class View и выделить имя класса ClabHTTPDlg. Затем щелкнуть правой кнопкой мыши на имени этого класса и выполнить команду контекстного меню Add->Add Variable.

- Связать переменную m_text с текстовым полем. В появившемся окне Add Member Variable Wizard-labHTTP выполнить следующее: установить флажок Control variable; в списке Control ID выбрать идентификатор текстового поля IDC_EDIT1; в списке Category выбрать значение value; в списке Variable type появится CString; ввести в поле Variable name строку m_text; в списке Access проверить наличие элемента public; и наконец, щелкнуть на кнопке Finish.

Подключение классов WinInet

Для использования классов WinInet необходимо вставить в начало файла labHTTPDlg строку:

#include “afxinet.h”

Создание нового сеанса Internet (Internet session) через

HTTP

void ClabHTTPDlg:: OnBnClickedButton1() //этапы алгоритма

//пронумерованы

{

CInternetSession* pIS; //1 указатель на объект сеанса Internet

pIS=new CInternetSession(); //создание сеанса