Страница: 1 | 2 |
|
Вопрос: 2D game, directX7, DirectDraw и vb6
|
Добавлено: 31.08.10 04:40
|
|
Номер ответа: 17 Автор ответа: Eugy
Вопросов: 0 Ответов: 73
|
Профиль | | #17
|
Добавлено: 03.09.10 21:06
|
Использовать на форме 2 picture box'a и один сделать как буфер
Забей вообще на пикчебоксы, забудь это слово
DeviceContext есть у любого окна. Тебе надо создать HDC в памяти и всю черновую работу рисовать в нем.
Сотня графических функций берет HDC как параметр.
Короче:
-
- HDC CreateBufferDC(int widht, int height)
- {
- HDC hdtDC = GetDC(NULL); // берем HDC рабочего стола
- HDC hmemDC = CreateCompatibleDC(hdtDC); // на его основе создаем совместимый контекст "в памяти"
- HBITMAP hmemBM = CreateCompatibleBitmap(hdtDC,widht, height); // создаем совместимый bitmap нужного размера
- ReleaseDC(NULL, hdtDC); // больше не нужен
- SelectObject(hmemDC, hmemBM); // выбираем bitmap в контексте созданном в памяти
- return hmemDC;
- }
-
- void DeleteBufferDC(HDC mdc)
- {
- HDC hdtDC = GetDC(NULL);
- HDC hdummyDC = CreateCompatibleDC(hdtDC);
- HBITMAP hinitBM = (HBITMAP)GetCurrentObject(hdummyDC, OBJ_BITMAP);
- DeleteDC(hdummyDC);
- HBITMAP hmemBM = (HBITMAP)SelectObject(mdc, hinitBM);
- BOOL dd = DeleteObject(hmemBM);
- DeleteDC(mdc);
- }
BufferedGraphicsContext это, как я понимаю, класс из .NET FrameWork 4.
Бритва Окаммы в помощь.
Ответить
|
Номер ответа: 18 Автор ответа: Gogic
Вопросов: 38 Ответов: 121
|
Профиль | | #18
|
Добавлено: 06.09.10 21:12
|
Сам учился на 7 DirectX, для новичка нормальная тема. Инфы в инете полно, гугли лучше.
Скачай и установи DirectX 7 SDK, там есть много примеров.
Гы, у меня даже книжка валяецо DirectX 7 для программистов, правда под с++, но теория там описана хорошо.
2D - да, лучше DDraw. 3D - OpenGL (c++). Это что касается обучения.
Ответить
|
Страница: 1 | 2 |
Поиск по форуму