Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Графика -> Гончаров Д. -> "DirectX 7.0 Для программистов" -> 10

DirectX 7.0 Для программистов - Гончаров Д.

Гончаров Д., Салихо Т. DirectX 7.0 Для программистов — Спб.: Питер, 2001. — 528 c.
ISBN 5-318-00173-4
Скачать (прямая ссылка): dirext7dlyaprogrammistov2001.djvu
Предыдущая << 1 .. 4 5 6 7 8 9 < 10 > 11 12 13 14 15 16 .. 229 >> Следующая

Базовое приложение для Windows 9X/NT 25
ции (по крайней мере для ее автора). Понятие «правильности» здесь достаточно условно, однако мы стремились следовать определенным правилам, среди которых основным требованием являлась читабельность программы.
ВНИМАНИЕ Проверка ошибок выполнения программы имеет место лишь в самых критичных с нашей точки зрения местах. Это сделано для обеспечения максимальной наглядности приводимых примеров. При создании реальных приложений, конечно же, таким уровнем надежности ограничиваться не стоит.
Базовое приложение для Windows 9X/NT
Перейдем сразу к делу — рассмотрим приложение для Windows, которое мы будем использовать в качестве базового в процессе изложения основных тем. Такой подход является распространенной практикой: большинство Windows-nporpaM-мистов не начинает каждый новый проект с нуля. Отправной точкой либо служит проект, по своим характеристикам похожий на требуемый, либо используется шаблон, содержащий в себе минимальную, необходимую для проекта функциональность. Такой шаблон и рассматривается далее в листинге 1.1.
Листинг 1.1. Шаблон Windows-приложения
//.....................................................
// Файл: MAIN.CPP
// Описание: Минимальное приложение для Windows 9x/NT
//.....................................................
#define STRICT
#define WIN32LEANANDMEAN
#include <windows.h>
#include <windowsx.h>
//Оконная процедура '
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
char* szClassName® "First Window"; char* AppName= "First Application";
#define TIMERID 1 #define TIMER RATE 1000
// Обработчики сообщений Windows
BOOL FirstApp_OnCreate(HWND hwnd. LPCREATESTRUCT lpCreateStruct);
void FirstApp_OnDestroy(HWND hwnd);
void FirstApp_OnTimer(HWND hwnd. UINT id);
//Главная функция программы
int WINAPI WinMainCHINSTANCE hlnst, HINSTANCE hPrevInst, LPSTR lpszCmdLine, int nCmdShow)
{
WNDCLASSEX wndClass;
HWND hWnd;
MSG msg;
//Регистрация оконного класса wndClass.cbSi ze=si zeof(wndClass); wndClass.style*CS_HREDRAW|CSVREDRAW; wndClass.1pfnWndProc=WndProc;
wndClass.cbClsExtra=0; 3
продолжение &
26
Урок 1 • Основы программирования на C/C++ для Windows 9X/NT
Листинг 1.1 (продолжение)
wndClass.cbWndExtra*0; wndClass.hlnstance®hlnst; wndClass.hIcon*LoadIcon(NULL,IDIAPPLICATION); wndClass.hIconSnr LoadIcon(NULL.IDIAPPLICATION); wndClass.hCursor*LoadCursor(NULL. IDCARROW); wndClass.hbrBackground=GetStockBrush(BLACK_BRUSH); wndClass.1pszMenuName-NULL: wndClass.1pszClassName=szClassName:
RegisterClassExC&wndClass):
//Создание окна на основе класса hWncHCreateWi ndowEx(
WSEXTOPMOST. szClassName, szAppName.
WS_P0PUP,
0.0.
GetSystemMet r i cs (SMCXSCREEN).
GetSystemMet ri cs (SMCYSCREEN).
NULL.
NULL, hlnst.
NULL); if (hWnd — NULL)
return (FALSE):
ShowWindow(hWnd.nCmdShow);
UpdateWindow(hWnd);
//Главный цикл программы while(GetMes$age(&msg.NULL,0.0)){ TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam);
}
//Оконная процедура
LRESULT CALLBACK WndProc(HWND hWnd. UINT msg, WPARAM wParam. LPARAM lParam){ switch(msg)
{
HANDLEMSG (hWnd. WMCREATE. Fi r stApp_OnCreate);
HANDLEMSG (hWnd. WMDESTROY. Fi r stApp_OnDest roy);
HANDLE_MSG( hWnd. WMTIMER. Fi r stApp_OnTi mer): default:
return DefWi ndowProc(hWnd.msg,wParam,1Param);
>
}
/* Обработчики сообщений */
BOOL FirstApp_OnCreate(HWND hwnd, LPCREATESTRUCT lpCreateStruct)
{
i f (!SetTimer(hwnd.TIMER_ID,TIMER_RATE.NULL)) return (FALSE): return (TRUE):
}
//........................................................
void FirstApp_OnDestroy(HWND hwnd)
{
KillTimer(hwnd,TIMER_ID):
PostQuitMessage(O);
}
//........................................................
//Дополнительный стиль окна //Класс окна //Текст заголовка
//Координаты X и У
//Ширина и высота //Дескриптор родительского окна //Дескриптор меню //Дескриптор экземпляра //Дополнительные данные
Базовое приложение для Windows 9X/NT
27
void FirstAppOnTi тег (HWND hwnd, UINT id)
{
MessageBeep(OxFFFFFFFF);
}
Прежде чем двигаться дальше, неплохо было бы запустить вышеприведенную программу и оценить ее функциональность. Инструкции по применению Visual C++ для компиляции программ, а также общие советы по использованию этой системы программирования приведены в приложении А. Обращайтесь к этому приложению в случае возникновения проблем. Если же Visual C++ не является вашей «родной» средой программирования, то прежде чем продолжить чтение, внимательно ознакомьтесь с приложением А.
Хотелось бы узнать впечатления от программы. Приложение, показывающее черный экран и периодически издающее щелчки, наверное, — не самое впечатляющее зрелище. Но важно помнить, что этот листинг, включающий порядка 70 строк и выглядящий несколько тяжеловато для самой первой программы, при ближайшем рассмотрении окажется всего лишь каркасом, обеспечивающим минимальную функциональность. Основная часть этого каркаса будет переходить из примера в пример неизменной. Для начала стоит бегло рассмотреть основные части программы, не задерживаясь на мелочах, а затем разобраться с ними более подробно.
Предыдущая << 1 .. 4 5 6 7 8 9 < 10 > 11 12 13 14 15 16 .. 229 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.