Udostępnij za pośrednictwem


Struktura ATL_DRAWINFO

Zawiera informacje używane do renderowania do różnych obiektów docelowych, takich jak drukarka, metaplik lub kontrolka ActiveX.

Składnia

struct ATL_DRAWINFO {
    UINT cbSize;
    DWORD dwDrawAspect;
    LONG lindex;
    DVTARGETDEVICE* ptd;
    HDC hicTargetDev;
    HDC hdcDraw;
    LPCRECTL prcBounds;
    LPCRECTL prcWBounds;
    BOOL bOptimize;
    BOOL bZoomed;
    BOOL bRectInHimetric;
    SIZEL ZoomNum;
    SIZEL ZoomDen;
};

Członkowie

cbSize
Rozmiar struktury w bajtach.

dwDrawAspect
Określa, jak element docelowy ma być reprezentowany. Reprezentacje mogą zawierać zawartość, ikonę, miniaturę lub wydrukowany dokument. Aby uzyskać listę możliwych wartości, zobacz DVASPECT i DVASPECT2.

lindex
Część docelowa, która jest interesująca dla operacji rysowania. Interpretacja różni się w zależności od wartości elementu dwDrawAspect członkowskiego.

ptd
Wskaźnik do struktury DVTARGETDEVICE , która umożliwia optymalizacje rysunku w zależności od określonego aspektu. Należy pamiętać, że nowsze obiekty i kontenery, które obsługują zoptymalizowane interfejsy rysunkowe, obsługują również ten element członkowski. Starsze obiekty i kontenery, które nie obsługują zoptymalizowanych interfejsów rysunkowych, zawsze określają wartość NULL dla tego elementu członkowskiego.

hicTargetDev
Kontekst informacji dla urządzenia docelowego wskazywany ptd przez obiekt, z którego obiekt może wyodrębnić metryki urządzenia i przetestować możliwości urządzenia. Jeśli ptd ma wartość NULL, obiekt powinien zignorować wartość w elemencie hicTargetDev członkowskim.

hdcDraw
Kontekst urządzenia, na którym ma być rysowanie. W przypadku obiektu bez okien element hdcDraw członkowski jest w MM_TEXT trybie mapowania ze współrzędnymi logicznymi pasującymi do współrzędnych klienta okna zawierającego. Ponadto kontekst urządzenia powinien być w tym samym stanie co zwykle przekazywany przez WM_PAINT komunikat.

prcBounds
Wskaźnik do struktury RECTL określający prostokąt na hdcDraw i w którym obiekt ma być rysowany. Ten element członkowski kontroluje pozycjonowanie i rozciąganie obiektu. Ten element członkowski powinien mieć wartość NULL, aby narysować aktywny obiekt bez okna. W każdej innej sytuacji wartość NULL nie jest wartością prawną i powinna spowodować wystąpienie E_INVALIDARG kodu błędu. Jeśli kontener przekazuje wartość inną niż NULL do obiektu bez okna, obiekt powinien renderować żądany aspekt do określonego kontekstu urządzenia i prostokąta. Kontener może zażądać tego z obiektu bez okna w celu renderowania drugiego, nieaktywnego widoku obiektu lub wyświetlenia obiektu.

prcWBounds
Jeśli hdcDraw jest kontekstem urządzenia metapliku (zobacz GetDeviceCaps w zestawie Windows SDK), jest to wskaźnik do RECTL struktury określającej prostokąt ograniczenia w bazowym metapliku. Struktura prostokąta zawiera zakres okna i źródło okna. Te wartości są przydatne w przypadku rysowania metaplików. Prostokąt wskazywany przez prcBounds element jest zagnieżdżony wewnątrz tego prcWBounds prostokąta; znajdują się one w tej samej przestrzeni współrzędnej.

bOptimize
Nonzero, jeśli rysunek kontrolki ma być zoptymalizowany, w przeciwnym razie 0. Jeśli rysunek jest zoptymalizowany, stan kontekstu urządzenia zostanie automatycznie przywrócony po zakończeniu renderowania.

bZoomed
Nonzero, jeśli cel ma współczynnik powiększenia, w przeciwnym razie 0. Współczynnik powiększenia jest przechowywany w pliku ZoomNum.

bRectInHimetric
Nonzero, jeśli wymiary parametru prcBounds są w HIMETRIC, w przeciwnym razie 0.

ZoomNum
Szerokość i wysokość prostokąta, w którym jest renderowany obiekt. Współczynnik powiększenia wzdłuż osi x (proporcja naturalnego rozmiaru obiektu w bieżącym zakresie) obiektu docelowego jest wartością ZoomNum.cx podzieloną przez wartość ZoomDen.cx. Współczynnik powiększenia wzdłuż osi y jest osiągany w podobny sposób.

ZoomDen
Rzeczywista szerokość i wysokość celu.

Uwagi

Typowym użyciem tej struktury jest pobieranie informacji podczas renderowania obiektu docelowego. Można na przykład pobrać wartości z ATL_DRAWINFO wewnątrz przeciążenia CComControlBase::OnDrawAdvanced.

Ta struktura przechowuje istotne informacje używane do renderowania wyglądu obiektu dla urządzenia docelowego. Podane informacje mogą być używane na rysunku do ekranu, drukarki, a nawet metapliku.

Wymagania

Nagłówek: atlctl.h

Zobacz też

Klasy i struktury
IViewObject::D raw
CComControlBase::OnDrawAdvanced