のDirect2Dオブジェクトの小さなサンプルが作業している次のとおりです。
CChildView::CChildView()
: m_pBitmamLogo(NULL),
m_pBrushBackground(NULL)
{
}
HRESULT CChildView::_LoadBackgroundBrush(CHwndRenderTarget* pRenderTarget)
{
ASSERT_VALID(pRenderTarget);
// Create and load a Direct2D brush from a "PNG" resource
// NOTE: D2D1_EXTEND_MODE_WRAP repeats the brush's content
m_pBrushBackground = new CD2DBitmapBrush(pRenderTarget, // render target
IDB_PNG_BACKGROUND, // resource ID
_T("PNG"), // resource type
CD2DSizeU(0, 0),
&D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP,
D2D1_EXTEND_MODE_WRAP));
return m_pBrushBackground->Create(pRenderTarget);
}
CChildView::~CChildView()
{
// No need to free Direct2D resources
// because they are automatically destroyed by the parent render target
}
出典: http://codexpert.ro/blog/2016/01/18/easy-png-resource-loading-with-mfc/
もちろん、このオブジェクトを 'new'を使って作成したときに' delete'する必要があります。そうしないと、メモリリークが発生します。 –
これは使用方法によって異なる場合があります。 MFCにはオブジェクトの所有権に関する奇妙なアイデアがあったことを思い出しています。そのため、デバイスのコンテキストにそのブラシを置くと、所有権を引き受ける可能性があります。申し訳ありませんが詳細を思い出させません。 –
@πάνταῥεmy私のポストを読んだ?私はそれに削除を呼び出そうとしましたが、私はエラーが発生しているので、ここでこの質問をします。 –