Форум программистов, компьютерный форум CyberForum.ru

DirectDraw отказывается работать в окне - C++

Восстановить пароль Регистрация
 
Doxtar.Voodoo
0 / 0 / 0
Регистрация: 04.12.2009
Сообщений: 9
05.01.2010, 10:55     DirectDraw отказывается работать в окне #1
Всем доброго времени суток!
У меня такая проблема: DirectDraw не хочет в окне работать.Вроде инициализирую правильно,полноэкранный режим без проблем идет.В оконном создаю 2 несвязанные поверхности потом из одной в другую копирую.Кароч нажимаю дебаг - студия мне ошибку типа
Unhandled error
Access violated reading 0x000...чета типа того
Я так понимаю чтото потерялось...Пишет мне что hWnd(дескриптор окна) unused=??? backsurf=0x000000
Помогите кто может,а то уже несколько дней об стену бьюсь....
вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;
    HDC hdc;
 
    switch (message) 
    {
    case WM_PAINT:
 
        hdc = BeginPaint(hWnd, &ps);
 
        if (imagesurf!=NULL &|| imagesurf2!=NULL  )
        {
            // Область копирования
            RECT dst;
            dst.left=dst.top=0;
            dst.right=iWidth;
            dst.bottom=iHeight;
 
            // Копируем картинку 1
            backsurf->Blt(&dst, imagesurf, 0, DDBLT_WAIT, 0);
 
            // Копируем картинку 2
            backsurf->BltFast(100, 100, imagesurf2, 0, DDBLTFAST_SRCCOLORKEY | DDBLTFAST_WAIT);
        }
 
        if (bWindowed)
        {
            RECT clientRect;
            POINT p;
            p.x=p.y=0;
            ClientToScreen(hWnd, &p);
            GetClientRect(hWnd, &clientRect);
            OffsetRect(&clientRect, p.x, p.y);
 
            primsurf->Blt(&clientRect, backsurf, 0, DDBLT_WAIT, 0);
        }
        else
            primsurf->Flip(NULL, DDFLIP_WAIT);
 
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
         if (backsurf) {backsurf->Release();backsurf=0;}
         if (primsurf) {primsurf->Release();primsurf=0;}
         if (ppiDD) {ppiDD->Release();ppiDD=0;}
        PostQuitMessage(0);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2010, 10:55     DirectDraw отказывается работать в окне
Посмотрите здесь:

C++ Программа отказывается сохранять в файл
Обратная матрица. Отказывается компилировать. C++
Отказывается работать цикл C++
программу составил по уравнению, отказывается работать C++
Деструктор отказывается нормально вызываться C++
Работает с Int, а с char отказывается C++
C++ Библиотека SFML отказывается подключаться g++
Базовый класс "Строка" отказывается работать C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru