4974

Введение в программирование под Windows на C++

Контрольная

Информатика, кибернетика и программирование

Введение в программирование под Windows. Развитие графической операционной системы Windows привело к тому, что программы, поддерживающие консольный ввод исходных данных и вывод результатов в текстовом режиме стремительно устаревает. К современным пр...

Русский

2012-11-30

28.81 KB

14 чел.

Введение в программирование под Windows.

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

Написание программ, использующих графический интерфейс ОС Windows, на традиционных языках программирования, например, Си, требует решения трудоемких стандартных задач по созданию многооконного интерфейса.

Чтобы облегчить работу программиста, практически все современные компиляторы с языка C++, в том числе MS Visual C++, содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя.

MS Visual C++ имеет следующие средства автоматизации процесса создания графического Windows приложения:

- мастер создания проекта Windows- приложения на основе библиотеки классов Microsoft Foundation Classes (MFC) Application Wizard;

- мастер создания нового класса

- мастер добавления в класс новой переменной

- мастер добавления в класс новой функции

- средства визуального редактирования графических ресурсов: диалоговых окон, панелей инструментов, меню, иконок и т.д.

- мастер добавления функций-обработчиков событий: (наведение мыши на орган управления).

Создание графического приложения начинается с запуска мастера создания проекта MFC Application Wizard. Как при создании любого приложения, из главного меню Visual C запускается команда File->New->Project. В окне шаблон приложения (Templates) выбирается MFC Application, в окне Project name задается имя проекта. После нажатия кнопки Finish запускается MFC Application Wizard.

MFC Application Wizard состоит из следующих основных разделов:

Application type (Тип приложения)

Database support (поддержка баз данных)

User interface features (задание начального внешнего вида главного окна приложения)

Наиболее важным разделом является Application type. Он позволяет выбрать один из трех типов приложений:

Single Document (Однодокументное приложение) для создания приложений, работающих только с одним документом на основе концепции документ-представление (Document View).

Для использования данной концепции должен быть установлен флажок Document/View Architecture Support.

Multiple Documents (Многодокументное приложение) для создания приложений, работающих с несколькими документами на основе концепции документ-представление.

Dialog based для создания диалоговых приложений

В списке Resource Language следует выбрать English.

При создании однодокументного или многодокументного приложения c именем MyProg, использующего концепцию Документ-представление,  автоматически создаются следующие основные классы:

- класс приложения СMyProgApp

- класс документа CMyProgDoc, который отвечает за хранение документа в памяти компьютера

- класс представления CMyProgView, который отвечает за отображение документа на экране

- класс главного окна приложения СMainFrame

При создании диалогового приложения без главного окна и поддержки архитектуры Документ-представление с именем MyProg создаются следующие классы:

- класс приложения CMyProgApp

- класс диалога CMyProgDlg

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

Принцип работы Windows приложение, заключается в следующем. Изменение состояние различных устройств компьютера, например, нажатие кнопки мыши, воспринимаются операционной системой как события. При возникновении определенных событий ОС генерирует стандартные сообщения. Каждая разновидности события соответствует уникальный номер сообщения. Программа представляет собой бесконечный цикл, который находится в ожидании сообщения. При появлении сообщение вызывается соответствующая функция обработчик сообщений.

Наиболее простым для разработки является диалоговое приложение без главного окна и поддержки концепции документ представление. Данный тип приложения рекомендуется взять за основу при выполнении курсовой работы.

После создания основы диалогового приложения рекомендуется оформить внешний вид диалогового окна с помощью редактора ресурсов.

Для просмотра ресурсов служит окно Resource View, которое открывается с помощью команды View->Resource View. Оно содержит папку Dialog, в котором находится идентификатор диалогового окна IDD_MYPROG_DIALOG. При выделении идентификатора и двойном щелчке мыши форма диалоговой панели появляется в окне редактирования.

Для добавления в форму органов управления используется окно ToolBox, которое содержит различные органы управления, которые можно вытягивать и размещать в форме диалогового окна. Наиболее часто используемыми органами управления являются Button, Check Box, Radio Button, Edit Control, Combo Box, Static Text.

После вытягивания органов управления задаются их свойства в окне Properties. При выделении очередного органа управления его свойства автоматически отображаются в окне Properties. Они условно разделены на три группы: Appearance (Внешний вид), Behavior(поведение), Misc(Разное)

В первую очередь необходимо обратить внимание на свойство ID, значением которого является идентификатор органа управление. Он представляет собой некоторое буквенное обозначение, которому соответствует целая константа. Значение идентификатора по умолчанию может быть изменено на более близкое к смыслу решаемой задачи.

После того, как свойства заданы, для каждого органа управления можно назначать обработчики событий. Для этого выделяется нужный орган управление, нажатием правой кнопки мыши открывается контекстное меню и выбирается команда Add Event Handler. В результате запускается мастер добавления обработчиков событий Event Handler Wizard. В окне Message type выбирается идентификатор типа сообщения. Список идентификаторов типа сообщения зависит от типа органа управления

Например, идентификатор BN_CLICKED для органа управления Button соответствует нажатию левой кнопки мыши. В окне Function Handler Name автоматически генерируется имя функции обработчика, который добавляется в класс диалога, выбранный по умолчанию в окне Class list.

Нажатие кнопки Add and Edit приводит к появлению нового обработчика и дает возможность его редактировать.

Пусть, диалоговое окно содержит окно редактирования Edit Control с идентификатором IDC_INPUT и кнопку Button c идентификатором IDC_SQUARE. Необходимо, чтобы по нажатию кнопки число в окне редактирования возводилось в квадрат. В этом случае обработчик нажатия кнопки должен выглядеть следующим образом:

void CMyProgDlg::OnBnClickedSquare()

{

 int k,m;

k=this->GetDlgItemInt(IDC_INPUT);

m=k*k;

 this->SetDlgItemInt(IDC_INPUT,m);

}

Во многих программах по воздействию на различные органы управление необходимо отображать в окне графическую и текстовую информацию.

Для этих целей используют ряд классов, входящих в состав библиотеки MFC. К ним относятся: окно, графический контекст, световое перо, кисть, шрифт и др.

Окно- прямоугольная область для вывода информации

Графический контекст – совокупность программных средств, делающих вывод графической информации независимым от типа видео платы и монитора.

Световое перо – класс режима отображения линий

Кисть – класс режима отображения замкнутых областей окна.

Шрифт – класс стиля отображения текста.

.Рассмотрим пример обработчика нажатия кнопки с идентификатором ID_RIS1

void CMyProgDlg::OnBnClickedRis1()

{

CWnd* pWnd;//определение указателя на будущее окно общего назначения (класс CWnd)

CString strMyClass;//определение строки для задания класса окна.

 //Класс окна - объект строкового типа, который содержит свойства окна

 //вызов функции регистрации класса окна

 //Входной параметр - комбинация констант со стандартными именами

 //| - знак объединения констант

 //Каждая константа отвечает за определенное свойство

strMyClass = AfxRegisterWndClass(

   CS_VREDRAW //перерисовка при изменении вертикальных размеров

   | CS_HREDRAW //перерисовка при изменении горизонтальных размеров

   | CS_OWNDC //задание собственного контекста графического устройства

   );

pWnd= new CWnd; //динамическое выделение памяти под окно

pWnd->CreateEx(//вызов функции создания окна

  WS_EX_OVERLAPPEDWINDOW,//расширенный стиль

  strMyClass,//зарегистрированный класс окна

  "ABC",//строка заголовка окна, если он есть

  WS_POPUP //стиль окна - всплывающий

  | WS_VISIBLE//видимый

  | WS_BORDER,//с рамкой

  0, 0, 100, 100,//координаты

  m_hWnd,//дескриптор

  0);

pWnd->ShowWindow(SW_SHOW);

pWnd->UpdateWindow();

 CClientDC dc(pWnd);//описание клиентского контекста графического устройства

 //в качестве параметра конструктора используется указатель на окно

RECT rect;//определение прямоугольника для хранения координат окна

 

CPen NewPen;//определение своего пера для отображения линий

   CPen *OldPen;//определение указателя на старое перо

CBrush NewBrush;//определение кисти для закрашивания замкнутых областей

CBrush* OldBrush;//определения указателя на старую кисть

 

CFont NewFont;//определение шрифта

CFont *OldFont;//указатель на старый шрифт

CString sOut;//строка для вывода в окно

 int a=5;//переменная для вывода в окно

pWnd->GetClientRect(&rect);//извлечение координат окна для их использования при рисовании

NewPen.CreatePen(//задание параметров нового пера

 PS_SOLID,//непрерывная линия

 1,//толщина динии

 RGB(255,0,0)//цвет как комбинация кодов оттенков красного, зеленого и синего цвета

 );//

OldPen=dc.SelectObject(&NewPen);//установка нового пера с сохранением старого

NewBrush.CreateSolidBrush(RGB(255,255,255));//задание параметров новой кисти(только цвет)

OldBrush=dc.SelectObject(&NewBrush);

NewFont.CreateFont( //создание нового шрифта

     14,                        // высота

     0,                         // ширина

     0,                         //

     0,                         // ориентация

     FW_NORMAL,                 // жирность

     FALSE,                     // курсив

     FALSE,                     // подчеркивание

     0,                         //

     ANSI_CHARSET,              // набор символов

     OUT_DEFAULT_PRECIS,        // nOutPrecision

     CLIP_DEFAULT_PRECIS,       // nClipPrecision

     DEFAULT_QUALITY,           // nQuality

     DEFAULT_PITCH | FF_SWISS,  // nPitchAndFamily

     "Arial"     //название шрифта

     );

dc.SetMapMode(MM_TEXT);//задание режима преобразования логических координат

    //задаваемых при рисовании объектов в пиксели

 //окраска окна в белый цвет

dc.FillSolidRect(rect.left,rect.top,rect.right-rect.left,rect.bottom-rect.top,RGB(255,255,255));

dc.MoveTo(0,0);//перемещение светового пера в точку 0,0

dc.LineTo(10,10);//рисование линии до токи 10,10

dc.Rectangle(10,10,30,30);//рисование прямоугольника

 

dc.MoveTo(50,50);//перемещение пера в точку 50,50

 dc.AngleArc(50,50,30,0,360);//рисование дуги с центром 50,50 радиусом 30,

       //начальным углом 0, конечным углом 360 градусов

 

sprintf(sOut.GetBuffer(128),"a=%d",a);//печать переменной с надписью в буфер строки

sOut.ReleaseBuffer();//освобождение буфера

dc.TextOut(40,40,sOut);//вывод строки

 dc.SelectObject(OldPen);

NewPen.DeleteObject();

 

dc.SelectObject(OldBrush);

NewBrush.DeleteObject();}


 

А также другие работы, которые могут Вас заинтересовать

44281. Государственная регистрация прав на недвижимое имущество и сделок с ним 559 KB
  Цель настоящего исследования состоит в том, чтобы на основе существующих теоретических подходов, действующего законодательства и юридической практики исследовать институт недвижимости, определить тенденции развития и пути совершенствования российского законодательства в части гражданско-правового регулирования недвижимости
44283. Создание 3D моделей в системе «CATIA V5», «Компас-3D» и «Вертикаль» 2.68 MB
  Создание модели детали втулка и операционных заготовок в системе CTI V5.Создание операционных заготовок детали втулка методом логической операции сборки. Например библиотека стандартных изделий позволяет добавлять уже готовые стандартные детали в трехмерные сборки крепежные изделия подшипники элементы трубопроводов шпонки уплотнения а также графические обозначения стандартных элементов на чертежи обозначения отверстий предоставляя возможность задания их параметров. В ходе данной выпускной квалификационной работы...
44284. Самоходный портал 179 KB
  Ремонтные работы выполняются ремонтными службами производственных подразделений и персоналом службы главного энергетика. Основной задачей службы обслуживания является обеспечение бесперебойной безопасной и экономичной работы электроустановок. Для решения этой задачи обслуживающий персонал выполняет следующие работы: организует и проводит ППР и ППТО проводит профилактические испытания электрооборудования внедряет новую технику в электрохозяйство организует обучение и периодические проверки знаний обслуживающего персонала своевременно...
44285. Планирование маркетингового исследования с использованием сети интернет на этапе внедрения нового товара на рынок 7.97 MB
  Маркетинговые исследования на этапе продвижения нового товара на рынок в рамках проекта компании ООО Спорт-мастер PRO Программа маркетингового исследования Анализ результатов маркетингового исследования
44286. Проблемы института условно-досрочного освобождения от отбывания наказания 323.5 KB
  Условно-досрочное освобождение от наказания в уголовном праве России Исторический аспект развития института условно-досрочного освобождения от отбывания наказания в России Основания условия и порядок применения условно-досрочного освобождения от отбывания наказания категории лиц подлежащих условно-досрочному освобождению от отбывания наказания. Неисполнение условий условно-досрочного освобождения от наказания и его правовые последствия
44287. Корпоративный портал как платформа для разработки учебно-методической документации вуза 1.94 MB
  Портальные технологии обеспечивают возможность быстрого создания новой функциональности и предоставления ее клиентам портала, позволяют настраивать разделы портала в соответствии с потребностями отдельных групп сотрудников, а также персонализировать внешний вид портала – настраивать его под каждого пользователя
44288. Система работы по развитию слухового восприятия у слабослышащих старшеклассников на индивидуальных занятиях 1009.5 KB
  Анализ современной системы развития слухового восприятия слабослышащих детей.Задачи и значение работы по развитию восприятия речи на слух слабослышащими детьми Содержание работы по развитию восприятия речи на слух .