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;
};
Elementy członkowskie
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