logo-img
  • Фантастика
    • Попаданцы
    • Юмористическая фантастика
    • Социально-философская фантастика
    • Фэнтези
    • Космическая фантастика
    • Городское фэнтези
    • Боевая фантастика
    • ЛитРПГ
    • Фантастика
    • Современная сказка
    • Социально-психологическая фантастика
    • Хроноопера
    • Ужасы
    • Мифологическое фэнтези
    • Фантастика: прочее
    • РеалРПГ
    • Славянское фэнтези
    • Бояръ-Аниме
    • Мистика
    • Историческое фэнтези
    • Ироническая фантастика
    • Альтернативная история
    • Технофэнтези
    • Постапокалипсис
    • Киберпанк
    • Детективная фантастика
    • Стимпанк
    • Героическая фантастика
    • Научная Фантастика
    • Эпическая фантастика
    • Ненаучная фантастика
    • Сказочная фантастика
    • Космоопера
    • Юмористическое фэнтези
    • Ироническое фэнтези
    • Ужасы и мистика
  • Любовные романы
    • Исторические любовные романы
    • Современные любовные романы
    • Остросюжетные любовные романы
    • Любовные романы
    • Любовное фэнтези, любовно-фантастические романы
    • Короткие любовные романы
    • Эротическая литература
    • Эротика
    • Любовно-фантастические романы
    • Прочие любовные романы
  • Приключения
    • Приключения
    • Исторические приключения
    • Приключения для детей и подростков
    • Приключения в современном мире
    • Природа и животные
    • Вестерн, про индейцев
    • Авантюрный роман
    • Рыцарский роман
    • Морские приключения
    • Путешествия и география
    • Вестерны
    • Приключения про индейцев
    • Прочие приключения
  • Романы про измену
книги
  • книги
  • авторы
  • серии
0
logo-img

Фантастика

  • Попаданцы
  • Юмористическая фантастика
  • Социально-философская фантастика
  • Фэнтези
  • Космическая фантастика
  • Городское фэнтези
  • Боевая фантастика
  • ЛитРПГ
  • Фантастика
  • Современная сказка
  • Социально-психологическая фантастика
  • Хроноопера
  • Ужасы
  • Мифологическое фэнтези
  • Фантастика: прочее
  • РеалРПГ
  • Славянское фэнтези
  • Бояръ-Аниме
  • Мистика
  • Историческое фэнтези
  • Ироническая фантастика
  • Альтернативная история
  • Технофэнтези
  • Постапокалипсис
  • Киберпанк
  • Детективная фантастика
  • Стимпанк
  • Героическая фантастика
  • Научная Фантастика
  • Эпическая фантастика
  • Ненаучная фантастика
  • Сказочная фантастика
  • Космоопера
  • Юмористическое фэнтези
  • Ироническое фэнтези
  • Ужасы и мистика

Любовные романы

  • Исторические любовные романы
  • Современные любовные романы
  • Остросюжетные любовные романы
  • Любовные романы
  • Любовное фэнтези, любовно-фантастические романы
  • Короткие любовные романы
  • Эротическая литература
  • Эротика
  • Любовно-фантастические романы
  • Прочие любовные романы

Приключения

  • Приключения
  • Исторические приключения
  • Приключения для детей и подростков
  • Приключения в современном мире
  • Природа и животные
  • Вестерн, про индейцев
  • Авантюрный роман
  • Рыцарский роман
  • Морские приключения
  • Путешествия и география
  • Вестерны
  • Приключения про индейцев
  • Прочие приключения

Детективы и Триллеры

  • Политические детективы
  • Триллер
  • Иронический детектив, дамский детективный роман
  • Советский детектив
  • Классический детектив
  • Политический детектив
  • Боевик
  • Про маньяков
  • Детективы
  • Медицинский триллер
  • Дамский детективный роман
  • Техно триллер
  • Юридический триллер
  • Боевики
  • Исторические детективы
  • Шпионский детектив
  • Прочие Детективы
  • Маньяки
  • Полицейские детективы
  • Исторический детектив
  • Шпионские детективы
  • Классические детективы
  • Триллеры
  • Криминальные детективы
  • Иронические детективы
  • Криминальный детектив
  • Крутой детектив
  • Пьесы

  • Финансы и бизнес

  • Эро литература

Поэзия

  • Визуальная поэзия
  • Песенная поэзия
  • Лирика
  • Визуальная и экспериментальная поэзия, верлибры, палиндромы
  • Поэма, эпическая поэзия
  • Классическая зарубежная поэзия
  • Классическая русская поэзия
  • Поэзия Востока
  • Современная поэзия
  • Классическая поэзия
  • Современная зарубежная поэзия
  • Современная русская поэзия
  • Юмористические стихи, басни
  • Верлибры
  • Палиндромы
  • Экспериментальная поэзия
  • Поэзия
  • в стихах
  • Эпическая поэзия
  • Басни
  • Дом и досуг

Документальная литература

  • Научпоп
  • Документальная литература
  • Военная документалистика и аналитика
  • География, путевые заметки
  • Биографии и Мемуары
  • Военная документалистика
  • Военное дело
  • Публицистика
  • Прочая документальная литература

Религия, духовность, эзотерика

  • Самосовершенствование
  • Хиромантия
  • Католицизм
  • Индуизм
  • Астрология и хиромантия
  • Православие
  • Религия, религиозная литература
  • Эзотерика
  • Эзотерика, эзотерическая литература
  • Протестантизм
  • Иудаизм
  • Христианство
  • Буддизм
  • Язычество
  • Религиоведение
  • Ислам
  • Прочая религиозная литература
  • Астрология
  • Религия
  • Аниме

  • Древние книги

Знания и навыки

  • Истории из жизни
  • Культура и искусство
  • Хобби, досуг
  • Научно-популярная литература
  • Словари, справочники
  • Учебная и научная литература
  • Саморазвитие / личностный рост

Лёгкое чтение

  • Ужасы / мистика
  • Классика жанра
  • Боевики, остросюжетная литература
  • Комиксы / манга
  • Юмористическая литература
  • Легкая проза

Серьёзное чтение

  • Об истории серьезно
  • Пьесы, драматургия
  • Классическая литература
  • Cтихи, поэзия

Юмор

  • Юмористические стихи
  • Сатира
  • Юмористическая проза
  • Анекдоты
  • Юмор
  • Прочий юмор
  • Книги по IT

  • Словари и Энциклопедии

  • Love Action

  • Ценные бумаги

  • Эссе

  • Без Жанра

  • Иностранная литература

  • Народные

  • Романы про измену

  • Образование и наука

  • РПГ

Наука, Образование

  • Религия и духовная литература
  • Книги по психологии
  • Книги о путешествиях
  • Популярно об истории
  • Книги о войне
  • Юриспруденция
  • Военная история
  • Альтернативная медицина
  • Философия
  • Медицина
  • Зоология
  • Физика
  • Литературоведение
  • Зарубежная образовательная литература, зарубежная прикладная, научно-популярная литература
  • Языкознание, иностранные языки
  • Биология, биофизика, биохимия
  • Обществознание, социология
  • Психология и психотерапия
  • Востоковедение
  • Химия
  • История
  • Ботаника
  • Экономика
  • Альтернативные науки и научные теории
  • Научная литература
  • Рефераты
  • Секс и семейная психология
  • Историческая фантастика
  • Историческая литература
  • Политика
  • Геология и география
  • Ветеринария
  • Экология
  • Государство и право
  • Астрономия и Космос
  • Математика
  • Шпаргалки
  • Биохимия
  • Обществознание
  • Педагогика
  • Психология
  • Учебники
  • Иностранные языки
  • Детская психология
  • Биофизика
  • Прочая научная литература
  • Языкознание
  • Биология
  • Психотерапия и консультирование
  • Документальное

Техника

  • Транспорт и авиация
  • Строительство и сопромат
  • Автодело
  • Металлургия
  • История техники
  • Военное дело, военная техника и вооружение
  • Технические науки
  • Радиоэлектроника
  • Архитектура

Справочная литература

  • Прочая справочная литература
  • Путеводители, карты, атласы
  • Справочники
  • Справочная литература
  • Руководства
  • Словари
  • Энциклопедии
  • Путеводители

Фольклор

  • Частушки, прибаутки, потешки
  • Былины
  • Фольклор: прочее
  • Загадки
  • Детский фольклор
  • Народные песни
  • Былины, эпопея
  • Фольклор, загадки folklore
  • Народные сказки
  • Мифы. Легенды. Эпос
  • Пословицы, поговорки
  • Образовательная литература

  • Cпецслужбы

  • Семейная психология

  • Семейный роман

  • Частушки

Литература для детей

  • Зарубежные детские книги
  • Детские детективы
  • Школьные учебники
  • Учебная литература
  • Книги для подростков
  • Буквари
  • Фантастика для детей
  • Детская литература
  • Проза для детей
  • Классическая детская литература
  • Стихи для детей
  • Русские сказки
  • Зарубежная литература для детей
  • Сказки народов мира
  • Внеклассное чтение
  • Игры, упражнения для детей
  • Сказки
  • Детская познавательная и развивающая литература
  • Детская образовательная литература
  • Книги для дошкольников
  • Прочая детская литература
  • Детские приключения
  • Детская проза
  • Детские стихи
  • Детские остросюжетные
  • Детская фантастика
  • Книга-игра

Искусство, Искусствоведение, Дизайн

  • Мировая художественная культура
  • Искусство и Дизайн
  • Кино
  • Музыка
  • Партитуры
  • Искусствоведение
  • Живопись, альбомы, иллюстрированные каталоги
  • Скульптура и архитектура
  • Критика
  • Культурология
  • Театр

Жанр не определён

  • Разное

Деловая литература

  • Деловая литература
  • Зарубежная деловая литература
  • Управление, подбор персонала
  • Личная эффективность
  • О бизнесе популярно
  • Интернет-бизнес
  • Банковское дело
  • Менеджмент
  • Менеджмент и кадры
  • Тайм-менеджмент
  • Ценные бумаги, инвестиции
  • Кадровый менеджмент
  • Политическое управление
  • Краткое содержание
  • Ораторское искусство / риторика
  • Работа с клиентами
  • Стартапы и создание бизнеса
  • Маркетинг, PR, реклама
  • Маркетинг, PR
  • Финансы
  • Карьера, кадры
  • Экономика
  • Поиск работы, карьера
  • Отраслевые издания
  • Недвижимость
  • Корпоративная культура
  • Делопроизводство
  • Внешнеэкономическая деятельность
  • Бухучет и аудит
  • Торговля
  • Малый бизнес
  • Личные финансы
  • Государственное и муниципальное управление

Драматургия

  • Водевиль
  • Киносценарии
  • Сценарий
  • Античная драма
  • Трагедия
  • Комедия
  • Драма
  • Мистерия, буффонада, водевиль
  • Драматургия
  • Мистерия

Дом и семья

  • Прикладная литература
  • Спорт / фитнес
  • Рукоделие и ремесла
  • Изобразительное искусство
  • Йога
  • Секс / секс-руководства
  • Красота
  • Мода и стиль
  • Эротика и секс
  • Домашнее хозяйство
  • Интерьеры
  • Хобби / увлечения
  • Домашние животные
  • Коллекционирование
  • Хобби и ремесла
  • Боевые искусства, спорт
  • Домоводство
  • Здоровье
  • Кулинария
  • Развлечения
  • Сад и огород
  • Педагогика, воспитание детей, литература для родителей
  • Медицина и здоровье
  • Семейные отношения, секс
  • Семейные отношения
  • Рыбалка
  • Отдых / туризм
  • Автомобили и ПДД
  • Сделай сам
  • Прочее домоводство
  • Спорт
  • Здоровье и красота
  • Охота

Компьютеры и Интернет

  • Цифровая обработка сигналов
  • Учебные пособия, самоучители
  • ОС и Сети, интернет
  • Программирование, программы, базы данных
  • Компьютерное 'железо' (аппаратное обеспечение), цифровая обработка сигналов
  • Зарубежная компьютерная, околокомпьютерная литература
  • Компьютерное «железо»
  • Базы данных
  • ОС и Сети
  • Интернет
  • Программное обеспечение
  • Программирование
  • Прочая компьютерная литература

Прочее

  • Публицистическая литература
  • Шахматы
  • Подростковая литература
  • Газеты и журналы
  • Недописанное
  • Комиксы
  • Журналы, газеты
  • Изобразительное искусство, фотография
  • Самиздат, сетевая литература
  • Неотсортированное
  • Незавершенное
  • Фанфик

Учебники и пособия

  • Учебники и пособия
  • Школьные учебники и пособия, рефераты, шпаргалки
  • Учебники и пособия ВУЗов
  • Учебники и пособия для среднего и специального образования

Военное дело

  • Боевые искусства
  • Спецслужбы
  • Военная техника и вооружение
  • Военное дело: прочее

Проза

  • Малые литературные формы прозы: рассказы, эссе, новеллы, феерия
  • Историческая проза
  • Контркультура
  • Эпистолярная проза
  • Русская классическая проза
  • Советская классическая проза
  • Магический реализм
  • Проза
  • Зарубежная классическая проза
  • Классическая проза ХX века
  • Классическая проза ХIX века
  • Роман, повесть
  • Фантасмагория, абсурдистская проза
  • Афоризмы, цитаты
  • Экспериментальная, неформатная проза
  • Проза о войне
  • Современная русская и зарубежная проза
  • Классическая проза XVII-XVIII веков
  • Афоризмы
  • Эпопея
  • Феерия
  • Семейный роман/Семейная сага
  • Эссе, очерк, этюд, набросок
  • Средневековая классическая проза
  • Современная проза
  • Классическая проза
  • Готический роман
  • Антисоветская литература
  • Военная проза
  • Проза прочее
  • Роман
  • Повесть
  • Новелла
  • Сентиментальная проза
  • Рассказ

Родителям

  • Воспитание детей
  • Здоровье детей
  • Детские книги
  • Романы

Старинное

  • Античная литература
  • Прочая старинная литература
  • Европейская старинная литература
  • Древнерусская литература
  • Древневосточная литература

Зарубежная литература

  • Зарубежная справочная литература
  • Зарубежные детективы
  • Зарубежная прикладная литература
  • Зарубежное фэнтези
  • Зарубежная религиозная литература
  • Зарубежная образовательная литература
  • Зарубежная публицистика
  • Зарубежная психология
  • Зарубежные любовные романы
  • Зарубежная поэзия
  • Зарубежная классика
  • Зарубежная старинная литература
  • Зарубежная компьютерная литература
  • Зарубежная литература о культуре и искусстве
  • Зарубежные приключения
  • Современная зарубежная литература
  • Зарубежная драматургия
  • Зарубежная фантастика
  • Зарубежный юмор
  • Книги Для Детей

  • Стихи и поэзия

 

Developing a GUI in C++ and DirectX полностью

  • Читка
  • Компьютеры и Интернет
  • Программирование, программы, базы данных
  • Developing a GUI in C++ and DirectX
Developing a GUI in C++ and DirectX

Developing a GUI in C++ and DirectX

At first glance, it may seem like I'm reinventing the wheel; Windows already comes with a very complex, very functional GUI. Unfortunately, while the Windows GUI is great for office apps, quite frequently, it's not suited for many games. Games tend to want a more precise control over the GUI than Windows can provide (for example, games may want to use alpha-blending to implement partially transparent windows - easy if you've written your own GUI, but next to impossible using the Windows GUI).This article will walk you though how to create a GUI using C++ and DirectX. The series is divided into several parts, each dealing with a specific aspect of GUI programming:Part I: The Basics, and the MousePart II: WindowsPart III: ControlsPart IV: Resource Editors and Other MadnessNOTE: This document was originally four separate articles on www.gamedev.net. I've concatenated all four into one for the XGDC, but they remain otherwise unchanged. - Mason

  • Mason McCuskey
  • Программирование, программы, базы данных
  • 18+
<p>Mason McCuskey</p><p>Developing a GUI in C++ and DirectX</p><p>Part I: The Basics, and the Mouse</p>

Before I get started, I want to throw out a disclaimer: I’m going to outline the approach I used when I created the GUI system for my upcoming title, Quaternion. Treat this text as one solution to a very intricate problem, nothing more. I’m not saying that this way of making a GUI is the fastest or easiest way; I’m simply outlining a solution that worked for me. Also, this text is not complete. Like one of those Bob-Vila TV episodes, it skips over the easy stuff and concentrates on the interesting. There is no attached source file; there are code snippets in the text, and that’s it. In that code, I’ve stripped out a lot of layers of indirection that aren’t relevant to what I’m trying to show (i.e. the wrappers that you’d probably have for your DirectX functions, non-relevant initialization and cleanup code, etc). Also, beware of bugs - I’ve done lots of bug checking, but I’m only human. If you find a bug, please let me know about it by emailing mason@spin-studios.com.

I’m making several assumptions about your knowledge. I’m assuming you know the basics of how event-driven programming works (message queues, etc), and I’m assuming you have a strong grasp of PDL (the commenting language - if you don’t know what this is, read Code Complete, by Steve McConnell), and C++. I used C++ to implement my GUI system, because I’m a card-carrying member of the C++ fan club, and because the OOP of C++ work great for implementing window and control types. Shameless plug for the C++ language: Note the power of OOP in this solution, and ask yourself if you could do the same thing as easily in C.

Let’s start by defining our scope. It’s important to realize up front that we’re not remaking Windows 95, we’re just trying to get a simple GUI up for a game, so we don’t have to implement every single control and GUI construct. We only need a few parts for this simple GUI: a mouse pointer, a generic window, and some dialog controls to place within that window. We’re also going to need a resource editor, a program that will allow us to design dialogs by graphically dropping controls at various places.

<p>Start with the basics - The Rendering Loop</p>

I’m going to start at the top, by defining a function that will calculate and draw one frame of our GUI system. Let’s call this function RenderGUI(). In PDL, RenderGUI does something like this:

void CApplication::RenderGUI(void) {

 // get position and button status of mouse cursor

 // calculate mouse cursor’s effects on windows / send messages

 // render all windows

 // render mouse

 // flip to screen

}

Pretty straightforward for now. Basically, we grab the new position and status of the mouse cursor, calculate any changes that are caused by the new position, render all our windows, render the mouse cursor, then push the whole thing to the screen.

<p>The Mouse</p>

Now that we’ve got a main function, we’re going to create a mouse class. This mouse class will initialize the rodent, and will be responsible for querying its position and storing the results. Here’s the definition:

class CMouse {

public:

 CMouse(); // boring

 ~CMouse(); // boring

 int Init(LPDIRECTINPUT di); // we’ll talk about this later

 int Refresh(void); // we’ll talk about this later

 int GetButton(int index) {

  if (index ‹ 0 || index › NUMMOUSEBUTTONS) return(0);

  return(m_button[index]);

}

 CPoint GetPosition(void) { return(m_position); }

 enum { NUMMOUSEBUTTONS = 3 }; // three button mouse

private:

 LPDIRECTINPUTDEVICE m_mousedev;

 char m_button[NUMMOUSEBUTTONS]; // state of buttons

 CPoint m_position; // actual screen position

};

Pretty straightforward class definition. We’ve got two data pieces, m_button and m_position, abstracted by two functions, GetButton and GetPosition(). Then we’ve got Init and Refresh functions, which initialize the mouse and Refresh its button and position information. The m_mousedev is an interface to our mouse device; we get this interface during Init(), and use it in Refresh to communicate with DirectInput.

Перейти на страницу:
Читать далее
  • Предыдущая
  • 1
  • 2
  • 3
  • 4
  • ...
  • 18
  • Читать далее

Поиск

Книга жанров

  • Компьютеры и Интернет
  • Программирование, программы, базы данных

Похожие книги

Грокаем алгоритмы
Программирование, программы, базы данных
  • Адитья Бхаргава

Грокаем алгоритмы

Начать чтение
Искусство программирования на языке сценариев командной оболочки
Программирование, программы, базы данных
  • Мендель Купер

Искусство программирования на языке сценариев командной оболочки

Начать чтение
OrCAD PSpice. Анализ электрических цепей
Программирование, программы, базы данных
  • Дж. Кеоун

OrCAD PSpice. Анализ электрических цепей

Начать чтение
AutoCAD 2010
Программирование, программы, базы данных
  • Андрей Александрович Орлов

AutoCAD 2010

Начать чтение

Пожаловаться на книгу