Программирование для Internet (Технологии для работы в Internet. Приложение в стиле браузера), страница 3

-  Изменить размеры текстового поля. Растянуть мышью поле.

-  Добавить кнопку, перетащив ее в окно диалога.

-  Добавить перед текстовым полем надпись Text Web-page.

Изменение надписей элементов управления

Итак, у нас есть кнопка c надписью Button1 и текстовое поле. Заменим эту надпись на  “Poluchenie Web-page”.

-  Выделить надпись кнопки и вызвать View->Propertie. Откроется окно Push Button Properties.

-  Ввести в поле Caption текст “ Poluchenie Web-page ”. Проверить идентификатор кнопки: IDC_BUTTON1.

Связывание элементов управления с функцией

-  Запустить ClassWizard и проверить вкладку Message Maps.

-  Выбрать из списка Object Ids строку IDC_BUTTON1 и дважды щелкнуть в списке Messages на строке BN_CLICKED. Функции-обработчику присваивается имя OnButton1().

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

Необходимо связать переменную с текстовым полем:

-  Запустить ClassWizard и перейти на вкладку Member Variable.

-  Выделить идентификатор текстового поля IDC_EDIT1 и щелкнуть на кнопке Add Variable.

-  Ввести в поле строку m_text и щелкнуть на OK.

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

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

#include “afxinet.h”

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

void CLab12_2Dlg::OnButton1() //этапы алгоритма пронумерованы

{

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

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

  if (!pIS) //2 проверка подключения компъютера к Internet

  {

    AfxMessageBox(“No Internet session”, MB_OK);

    return;

  }                                            //3 соединение по протоколу HTTP

  CStdioFile* pFile=NULL; //указатель на файловый объект класса

  char* buffer=new char[1000]; //буфер для хранения 1000 символов

  pFile=pIS->OpenURL(CString(http://www.microsoft.com)); //возвращ.

  pFile->Read(buffer,1000);//4 чтение 1000 байт Web-страницы//файл

  //...

}

Отображение данных Web-страницы

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

void CLab12_2Dlg::OnButton1()

{//...

  pFile->read(buffer,1000);

..m_text=CString(buffer,1000); //пересылка из буфера 1000 символов

  UpdateData(false); //пересылка в текстовое поле из m_text

  pFile->Close(); // закрытие файла класса CStdioFile, потока С++

  pIS->Close(); //закрытие сеанса Internet

}

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

Запустить приложение и щелкнуть на кнопке Poluchenie Web-pa-ge. В текстовом поле появятся 1000 символов Web-страницы.

12.4. Приложение с протоколом FTP в WinInet

Цель работы – программное использование протокола FTP для пересылки файлов в Internet с поддержкой технологии WinInet. Пусть требуется загрузить файл с FTP-узла Microsoft. Таким файлом может быть disclaimer.txt, содержащий сообщение Microsoft о предоставлении файлов на этом FTP-узле без гарантий [л.13,стр.405]. Можно использовать любой файл на любом Web-узле.

В диалоговом окне будет находиться кнопка Pouchenie File и текстовое поле.

Lab12_3

Poluchenie File                                                  OK

                                                                           Cansel

Идет пересылка файла...

При щелчке на кнопке Poluchenie File начинается пересылка файла и в текстовое поле выводится сообщение “Идет пересылка файла...”.

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

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

- Выбрать команду File->New и вкладку Projects

- Выбрать из списка MFC AppWizard (.exe). В поле Project name ввести имя проекта Lab12_3. Нажать ОК.

- Выполнить 6 этапов настройки приложения. На этапе 1 App Wizard установить Dialog based.

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

В нашем примере необходимо добавить текстовое поле и кнопку с надписью Poluchenie File.

-  Добавить текстовое поле, перетащив его в окно диалога.

-  Изменить размеры текстового поля, растянув поле мышью.

-  Добавить кнопку, перетащив ее в окно диалога.

Изменение надписей элементов управления

Итак, у нас есть кнопка c надписью Button1 и текстовое поле. Заменим эту надпись на  “Poluchenie File”.

-  Выделить надпись кнопки и вызвать View->Propertie. Откроется окно Push Button Properties.

-  Ввести в поле Caption текст “ Poluchenie File”.

-  Проверить идентификатор кнопки: IDC_BUTTON1.

Связывание элементов управления с функцией

-  Запустить ClassWizard и проверить вкладку Message Maps.

-  Выбрать из списка Object Ids строку IDC_BUTTON1 и дважды щелкнуть в списке Messages на строке BN_CLICKED. Функции-обработчику присваивается имя OnButton1().

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

Необходимо связать переменную с текстовым полем:

-  Запустить ClassWizard и перейти на вкладку Member Variable.

-  Выделить идентификатор текстового поля IDC_EDIT1 и щелкнуть на кнопке Add Variable.

-  Ввести в поле строку m_text и щелкнуть на OK.

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

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

#include “afxinet.h”

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

void Clab12_3Dlg::OnButton1() //этапы алгоритма пронумерованы

{

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

  CFtpConnection* pFC; //2 указат. на объект класса CFtpConnection

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

  if (!pIS) //3 проверка подключения компъютера к Internet

  {

    AfxMessageBox(“No Internet session”, MB_OK);

    return;

  }                  //4 соединение по протоколу FTP

  pFC=pIS->GetFtpConnection(CString(“ftp.microsoft.com”));//соедин.

  if (!pFC) //5 проверка соединения с FTP-узлом               //с FTP-узлом

  {

    AfxMessageBox(“No FTP-connection”, MB_OK);

    return;

  }

  else //установление связи

  {

    m_text=”Идет пересылка файла...”; //присваив. строки

    UpdateData(false); //пересылка строки из m_text в текстовое поле

  }          //пересылка файла

  pFC->GetFile(CString(“disclaimer.txt”), CString(“disclaimer.txt”));//

  pFC->Close(); //закрытие FTP-подключения

  pIS->Close(); //закрытие сеанса Internet

}

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

Запустить приложение Щелкнуть на кнопке Poluchenie File. В текстовом поле выводится сообщение “Идет пересылка файла...”. Файл пересылается в каталог проекта.