TNB Library
TnbMfcBitmapDC.h
[詳解]
1#pragma once
11#include "TnbBitmapImage.h"
12
13
14
15//TNB Library
16namespace TNB {
17namespace MFC {
18
19
20
37class CBitmapDC : public CDC
38{
39 DEFSUPER(CDC);
40public:
41
47 explicit CBitmapDC(CBitmapImage* pBI) : m_pBitImg(pBI)
48 {
49 if ( m_pBitImg != NULL && _super::Attach(m_pBitImg->GetDC()) )
50 {
51 }
52 else
53 {
54 TRACE0(" CBitmapDC 有効でない CBItmapImage を指定しました。\n" );
55 AfxThrowResourceException();
56 }
57 }
58
63 explicit CBitmapDC(void) : m_pBitImg(NULL)
64 {
65 }
66
68 virtual ~CBitmapDC(void)
69 {
70 Detach();
71 }
72
82 bool Draw(HDC dc, int x = 0, int y = 0) const
83 {
84 if ( m_pBitImg != NULL )
85 {
86 const SIZE& size = m_pBitImg->GetSize();
87 return !! ::BitBlt(dc, x, y, size.cx, size.cy, *this, 0, 0, SRCCOPY);
88 }
89 return false;
90 }
91
100 {
101 Detach();
102 if ( pBI != NULL && _super::Attach(pBI->GetDC()) )
103 {
104 m_pBitImg = pBI;
105 return true;
106 }
107 return false;
108 }
109
117 {
118 CBitmapImage* P = m_pBitImg;
119 _super::Detach();
120 if ( m_pBitImg != NULL )
121 {
122 m_pBitImg->ReleaseDC();
123 }
124 m_pBitImg = NULL;
125 return P;
126 }
127
128private:
129 CBitmapImage* m_pBitImg;
130};
131
132
133
134}; //MFC
135}; //TNB
136
137
ビットマップイメージ管理関係のヘッダ
ビットマップイメージ管理クラス
HDC GetDC(void)
[取得]デバイスコンテキストハンドル取得.
const SIZE & GetSize(void) const
[取得] イメージサイズ取得.
bool ReleaseDC(void)
[設定] デバイスコンテキストハンドル返却.
ビットマップデバイスコンテキストクラス
CBitmapDC(void)
コンストラクタ.
virtual ~CBitmapDC(void)
デストラクタ
CBitmapImage * Detach(void)
[設定] デタッチ.
bool Draw(HDC dc, int x=0, int y=0) const
[処理] イメージ描画.
CBitmapDC(CBitmapImage *pBI)
コンストラクタ
bool Attach(CBitmapImage *pBI)
[設定] アタッチ
TNB Library
Definition: TnbDoxyTitle.txt:2