ďťż

Ładny brzuch

BARDZO potrzebuje odpowiedzi więc pisze jeszcze raz :)

A więc mam taki problem we wszystkich kursach DD
mamy taką inicjacje:

lpDDGlowny->SetCooperativeLevel(hwnd, DDSCL_FULLSCREEN | DDSCL_EXCLUSIVE);
lpDDGlowny->SetDisplayMode(800, 600, 16);

Ale ja niechce wyświetlać wszystkiego na pełnym ekranie tylko np.
ładować to do objektu TImage, lub czegoś podobnego.

Jak daje flage DDSCL_NORMAL i niepisze SetDisplayMode to przy tworzeniu powierzchni wyskakuje błąd EAccessViolation tak jakby DD wogóle nie stworzył powierzchni.

Jak to zrobić?



JUŻ WIEM (SAM DO TEGO DOSZŁEM) :)

Po pierwsze nie może być PRIMARYSURFACE tylko OFFSCREENPLAIN
No i oczywiście trzeba zainicjować tak:

DirectDrawCreate(NULL, &lpDD, NULL);
lpDD->SetCooperativeLevel(Handle, DDSCL_NORMAL);

A żeby przenieść na obiekt TImage to trzeba napisać:

BitBlt(Image1->Canvas->Handle, 0, 0, 250, 250, kontekst, 0, 0, SRCCOPY);

Gdzie kontekst to kontekst powierzchni DD.

:) :) :)

I już jest DD wyświetla wynik na obiekcie TImage.

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •