TNB Library
TnbDisabledDrawer.h
[詳解]
1#pragma once
11#include "TnbDrawable.h"
12
13
14
15//TNB Library
16namespace TNB
17{
18
19
20
36{
37 DEFSUPER(IDrawable);
38 IDrawable::Ptr m_pDraw;
40 static BOOL CALLBACK s_DrawIconProc(HDC hDC, LPARAM lParam, WPARAM wParam, int cx, int cy)
41 {
42 const CDisabledDrawer* P = reinterpret_cast<const CDisabledDrawer*>(lParam);
43 P->m_pDraw->Draw(hDC, 0, 0);
44 return TRUE;
45 }
46public:
47
53 {
54 m_pDraw = draw.Clone();
55 }
56
62 virtual IDrawable* Clone(void) const
63 {
64 return new CDisabledDrawer(*m_pDraw);
65 }
66
74 virtual bool GetSize(SIZE& _size) const
75 {
76 return m_pDraw->GetSize(_size);
77 }
78
87 virtual bool Resize(const SIZE& size)
88 {
89 return m_pDraw->Resize(size);
90 }
91
99 virtual void Draw(HDC dc, int x = 0, int y = 0) const
100 {
101 SIZE sz;
102 if ( m_pDraw->GetSize(sz) )
103 {
104 ::DrawState(dc, NULL, &s_DrawIconProc, reinterpret_cast<LPARAM>(this), 0, x, y, sz.cx, sz.cy, DST_COMPLEX | DSS_DISABLED);
105 }
106 }
107};
108
109
110
111};
112
描画情報関係のヘッダ
Disabled描画クラス
virtual void Draw(HDC dc, int x=0, int y=0) const
[描画] 描画.
CDisabledDrawer(const IDrawable &draw)
コンストラクタ
virtual bool Resize(const SIZE &size)
[設定] サイズ設定.
virtual bool GetSize(SIZE &_size) const
[取得] サイズ取得.
virtual IDrawable * Clone(void) const
[作成] クローン作成.
TNB Library
Definition: TnbDoxyTitle.txt:2
描画情報インターフェース
Definition: TnbDrawable.h:37
virtual bool Resize(const SIZE &size)=0
[設定] サイズ設定.
virtual bool GetSize(SIZE &_size) const =0
[取得] サイズ取得.
virtual IDrawable * Clone(void) const =0
[作成] クローン作成.
virtual void Draw(HDC dc, int x=0, int y=0) const =0
[描画] 描画.