62 m_pDrawing = draw.
Clone();
72 if ( ! other.m_pDrawing.
IsNull() )
74 m_pDrawing = other.m_pDrawing->
Clone();
89 m_pDrawing = draw.
Clone();
90 if ( isClientSizeAdjust )
94 else if ( m_pDrawing != NULL )
97 _super::GetClientRect(&rc);
98 m_pDrawing->
Resize(rc.Size());
127 if ( m_pDrawing.
IsNull() ) {
return false; }
128 if ( color == CLR_INVALID )
154 virtual LRESULT
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
159 TTRACE0(
"WM_ERASEBKGND\n");
162 TTRACE0(
"WM_PRINTCLIENT\n");
164 CDC* pDC = CDC::FromHandle(
reinterpret_cast<HDC
>(wParam));
169 TTRACE0(
"WM_PAINT\n");
176 TTRACE0(
"WM_ENABLE\n");
179 if ( ! m_pDrawing.
IsNull() )
182 _super::GetClientRect(&rc);
183 m_pDrawing->
Resize(rc.Size());
187 return _super::WindowProc(message, wParam, lParam);
197 HBITMAP hBmp =
reinterpret_cast<HBITMAP
>(_super::SendMessage(STM_GETIMAGE, IMAGE_BITMAP));
200 ::DeleteObject(hBmp);
202 HICON hIcon =
reinterpret_cast<HICON
>(_super::SendMessage(STM_GETIMAGE, IMAGE_ICON));
205 ::DeleteObject(hIcon);
207 _super::ModifyStyle(0, SS_OWNERDRAW);
208 _super::PreSubclassWindow();
217 if ( m_pDrawing.
IsNull() ) {
return; }
219 if ( m_pDrawing->
GetSize(size) )
225 void m_Draw(CDC* pDC)
227 if ( ! m_pDrawing.
IsNull() )
238 _super::GetClientRect(&rc);
239 HRGN rgn = ::CreateRectRgnIndirect(&rc);
240 ::ExtSelectClipRgn(*pDC, rgn, RGN_AND);
244 CWnd* pWnd = _super::GetParent();
247 pWnd->SendMessage(WM_CTLCOLORSTATIC,
248 reinterpret_cast<WPARAM
>(pDC->GetSafeHdc()),
reinterpret_cast<LPARAM
>(m_hWnd));
250 m_pDrawing->
Draw(*pDC);
static CBitmapHandle ToBitmap(const IDrawable &draw, COLORREF color=CLR_INVALID)
[作成] ビットマップ作成.
HRGN CreateRgn(COLORREF transColor=CLR_AUTOSELECT) const
[作成] リージョン作成.
bool IsNull(void) const
[確認] NULLチェック
void SetDrawingBitmap(CBitmapHandle bmp, bool isAdjust=true, bool isRedraw=false)
[設定] 描画情報設定.
void SetDrawingObject(const IDrawable &draw, bool isClientSizeAdjust=true, bool isRedraw=false)
[設定] 描画情報設定.
CDrawingStatic & operator=(const CDrawingStatic &other)
コピーオペレータ.
virtual ~CDrawingStatic(void)
デストラクタ
virtual void PreSubclassWindow(void)
[通知] subclassing/unsubclassing functions.
virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
[通知] for processing Windows messages.
CDrawingStatic(void)
コンストラクタ
CDrawingStatic(const IDrawable &draw)
代入コンストラクタ
bool SetClientRgnEx(COLORREF color=CLR_AUTOSELECT)
[設定] クライアントリージョン設定.
HRGN m_clientRgn
クライアントリージョン
bool SetClientRgn(HRGN rgn)
[設定] ウィンドウリージョン設定.
bool ChangeClientSize(CWnd *pWnd, int cx=-1, int cy=-1)
[設定] クライアントサイズ設定.
int SelectClipRgnOrg(CDC *pDC, HRGN rgn, int mode=RGN_COPY)
[設定] リージョン設定.
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
[描画] 描画.