Typ uchwytu

0

Potrzebuję pomocy przy nadpisywaniu metody PaintWindow z klasy TCustomControl. Do metody przekazuje się uchwyt HDC. W moim przypadku może to być uchwyt do Canvas jednego z trzech rodzajów zasobów - okienka, bitmapy pamięciowej lub drukarki. Jak rozpoznać typ zasobu do którego należy uchwyt??? W ostateczności wystarczy mi wiedzieć czy przekazywany uchwyt jest taki sam jak uchwyt okna. Robię porównanie DC = Canvas.Handle ale to nie działa. Pomocy!

Pozdrawiam,
Michał

0

Już wiem. Używa się funkcji winapi GetObjectType. Np: GetObjectType(DC) = OBJ_DC

0

Jeden problem się rozwiązał, pojawił się następny :/
Po włączeniu DoubleBuffered, okno używa bitmapy pamięciowej do rysowania samego siebie. Czy ktoś może wie jak pozyskać (do porównania) Canvas.Handle tej bitmapy? Cały czas jestem w metodzie Paint. Po włączeniu podwójnego buforowania GetObjectType nie zwraca już OBJ_DC tylko OBJ_MEMDC. I dzieje się tak zawsze. Zarówno przy odświeżaniu panelu przez Windows jaki i przy "kopiowaniu" jego obrazu do zupełnie innej bitmapy aby zapisać na dysk. Teraz nie jestem w stanie rozróżnić tych dwóch przypadków :-( Może ktoś pomoże...

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