Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
KG / КГ_6глава.doc
Скачиваний:
108
Добавлен:
26.05.2014
Размер:
225.79 Кб
Скачать

6.1. Первый пример программы для Windows

Наша первая графическая программа названа StudEx. Она предназначена для работы в среде 32-битных ОС Windows различных версий, например, 95, 98, 2000, Millennium, NT. Программа написана на языке C++ (строго говоря почти что на чистом С, если не считать комментариев) с использований

функций API Windows. Текст программы состоит из трех файлов

studex.cpp, studex.rc, studex.def.

Файл studex. cpp (это главный файл текста программы):

И-------Затем следует определение функций---------------

I/--------------Главная функция программы-------------------

//----Она определяет первые шаги работы программы----------

ц---д0 создания окна и вхождения в цикл сообщений---------

//—для Windows-программ функция С,C++ main названа WinMain

//-----------организация цикла обработки сообщений-------

while (GetMessage(&msg,NULL,NULL,NULL))

TranslateMessage(smsg);

DispatchMessage(Smsg);

}

return msg. wParam; }

//-------------функция главного окна программы---------

//—ее вызывает Windows, когда посылает сообщение нашей—

//-------------------------программе-------------------

LRESULT CALLBACK WndProc(HWND hWnd, UINT message,

WPARAM wParam, LPARAM lParam) switch (message) //Обработка всех сообщений для окна

case WM_COMMAND: //Обработка сообщений пунктов меню switch (LOWORD(wParam)) {

case 201: //выбран пункт меню Графика

DrawStudyExample(hWnd); //это наша собственная

//функция break;

case 108:

DestroyWindow(hWnd); //для завершения работы break;

default : break; }

break; case WM_DESTROY:

PostQuitMessage(0); //для окончания цикла сообщений break;

default : return DefWindowProc(hWnd, //обработка

message, //всех wParam, //остальных

lParara); //сообщений

}

return 0L; }

//-----------это наша собственная функция, она-----------

//-будет содержать графические операторы рисования в окне---

void DrawStudyExample(HWND hWnd)

(

HDC hdc;

hdc = GetDC (hWnd) ; //контекст окна

if (hdc)

{

//после того, как получено ненулевое hdc, можно рисовать,

//например, десять прямоугольников размером 70 х 50 ...

for (int i=0; i<10; i++)

Rectangle(hdc, i*30, i*20, i*30+70, i*20+50);

}

ReleaseDC(hWnd,hdc); //этот контекст больше не нужен

)

Файл studex. гс (здесь содержится описание меню):

STUDEXMENU MENU

(

POPUP "«.Файл"

{

MENUITEM "&Открыть...", 101

MENUITEM "«.Записать как...", 102 | MENUITEM SEPARATOR

MENUITEM "«.Печать", 103

MENUITEM SEPARATOR

MENUITEM "«.Закончить", 108

1

MENUITEM "«.Графика", 201 I

Файл studex.def (файл описания для Windows):

NAME StudEx

DESCRIPTION 'Study Example1

EXETYPE WINDOWS

CODE PRELOAD MOVEABLE DISCARDABLE

DATA PRELOAD MOVEABLE MULTIPLE

Приведенный выше текст программы — это только исходный текст. Его не­обходимо скомпилировать, чтобы получить выполняемый файл в машинных кодах. Для компиляции и отладки этой программы можно использовать раз­нообразные инструментальные средства программирования, например, Bor­land C++ 5.02, Borland C++ Builder, Microsoft Visual C++ 6.0 и другие. После создания проекта в среде системы программирования в результате компили-

рования получим выполняемый файл. Имя этого файла— studex.exe (или другое, что определяется при создании проекта). Запустите программу в сре­де Windows. После появления окна программы выберите пункт меню "Гра­фика". На экране дисплея будет изображение, как на рис. 6.1.

Рис. 6.1. Первый пример графической программы

Соседние файлы в папке KG