Szybka zmiana kolorow

0

Chcialbym sie dowiedziec jak programujac w WinAPI szybko zmieniac kolory pióra. Rysuję mapę składającą się z kwadratów, przy czym poszczególne kwadraty różnią się kolorami.
Jeżeli będę to robil poprzez CreatePen......(zeby zmienic kolor) to trzeba to robic przy kazdym kwadracie co przy mapie 12x28 da 336 utworzen i kasowań obiektu pióra. Czy nie da sie tego zrobić prościej i szybciej?

Jest funkcja SetDCPenColor wedlug MSDN dziala tylko w win2000/XP, w dodatku u mnie nie dziala wcale (malo probowalem).

Dodam ze pisze w VisualC++ i MFC

0

Jeżeli będę to robil poprzez CreatePen......(zeby zmienic kolor) to trzeba to robic przy kazdym kwadracie co przy mapie 12x28 da 336 utworzen i kasowań obiektu pióra.

No to biorąc na logikę, należy te pióra utworzyć wcześniej (np. przy tworzeniu okna), narysować wszystkie kwadraty i usunąć jak już nie będą potrzebne (np. przy zamknięciu okna);)

0

Myslalem nad takim rozwiazaniem ale kolory są pobierane z bazy danych i moze ich byc dosyc duzo. Mozna by tworzyc tablice obiektow CPen i pobierac odpowiedni przy rysowaniu.
Ogólnie rzecz biorąc GDI jest dosyc dziwnie zrobione. Zeby zmienic kolor trzeba tworzyc obiekt, przypisac go do kontekstu itp. Bez sensu.

0

jeśli chcesz się bawić możesz to zrobić przy pomocy directdraw. Masz pewność że jest to najszybszy sposób, dodatkowo stosując tylny bufor unikniesz efektu darcia obrazu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1