Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по DirectX

  Все выпуски  

Уроки по DirectX


Информационный Канал Subscribe.Ru


DirectX. Уроки с сайта http://progs.biz

Рассылка №2

DirectX. Direct3D. Урок 2. Подготовительная работа - делаем окно.

Полные версии уроков (с картинками) можно найти по адресам:
Урок 2. Подготовительная работа - делаем окно.

Олафсен Ю., Скрайбнер К., Уайт К. Д. и др. Visual C++ 6 и MFC. Энциклопедия программиста
Олафсен Ю., Скрайбнер К., Уайт К. Д. и др. Visual C++ 6 и MFC. Энциклопедия программиста
Заказать на Озоне

Подробнее

Рассылки сайта progs.biz через subscribe.ru
Windows API
Windows SDK: уроки по созданию приложений с использованием API функций Windows и всем, что с ними связано - сообщения, обработчики, диалоговые окна и элементы на них, меню, рисование, горячие клавиши и др. API-функции можно использовать фактически в любом языке программирования, так что знание таких функций позволит обойти ограничения того или иного языка.

DirectX. Direct3D. Урок 2. Подготовительная работа - делаем окно

На этом занятии мы с вами сделаем простой окно с помощью API-функций. Без этого никуда не деться - разное высокоуровневое создание окон (как, например, с помощью MFC, подходит мало - нам нужна скорость и компактность программы).

Для начала запустите Visual C++, нажмите Ctrl+N для создания нового проекта и выберите тип приложения Win32 Aplication. В поле Project name задайте имя проекта. Пусть имя для определености будет dx. Нажмите OK. В двух появившихся после этого окошках нажмите Finish и OK, ничего не меняя.

Пустой проект создан. Теперь надо добавить в него файл *.cpp. Именно в этом файле мы и будем писать текст нашей программы. Для добавления файла снова нажмите Crtl+N. В появившемся диалоговом окошке New выберите тип файла C++ Source File, введите в поле File name в качестве имени файла dx (имя произвольное) и нажмите на OK. Все! Теперь в нашем проекте есть файл dx.cpp. Введите в этот файл следующий текст:

#include <windows.h>
LONG WINAPI WndProc(HWND, UINT, WPARAM,LPARAM);
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR     lpCmdLine,
                   int       nCmdShow)
{
    HWND hwnd;
    MSG msg;
    WNDCLASS w;
    memset(&w, 0, sizeof(WNDCLASS));
    w.style="CS_HREDRAW" | CS_VREDRAW;
    w.lpfnWndProc = WndProc;
    w.hInstance = hInstance;
    w.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    w.lpszClassName = "My Class";
    RegisterClass(&w);
    hwnd = CreateWindow("My Class", "My title", WS_OVERLAPPEDWINDOW,
        300, 200, 200, 180, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd,nCmdShow);
    UpdateWindow(hwnd);
    while(GetMessage(&msg,NULL,0,0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}

LONG WINAPI WndProc(HWND hwnd, UINT Message, WPARAM wparam, LPARAM lparam)
{
    switch (Message){
    case WM_DESTROY:
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hwnd, Message, wparam, lparam);
    }
    return 0;
}

Запустите программу (Ctrl+F5). Если ошибок нет, то появится окно нашей программы.

Приведенный текст мы разбирать не будем. Если кому интересно, то разбор смотрите в другом разделе сайта - по WinAPI (уроки 1-3 и далее).

Наверх

Copyright Алексеев Игорь, 2002-2003
Copyright сайт progs.biz, 2002-2003
Распространение материалов без разрешения владельцев авторских прав запрещено.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное