資源簡介
D2D顯示圖片(MFC)

代碼片段和文件信息
#include?“stdafx.h“
#include?“baseFactory.h“
#include?“FX_WICBitmapDecoder.h“
baseFactory::baseFactory(void)
{
}
bool?baseFactory::Initialize(HWND?hwnd)
{
HRESULT?hr?=?S_OK;
m_hwnd?=?hwnd;
m_pRenderTarget?=?nullptr;
m_pBitmap?=?nullptr;
m_pBitmap1?=?nullptr;
CreateDeviceIndependentResources();
hr?=?CreateDeviceResources();
return?true;
}
baseFactory::~baseFactory(void)
{
}
HRESULT?baseFactory::CreateDeviceIndependentResources()
{
HRESULT?hr?=?S_OK;
//?Create?a?Direct2D?factory.
hr?=?D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED?&m_pDirect2dFactory);
IDWriteFactory*?pDWriteFactory_?=?NULL;
hr?=?DWriteCreateFactory(
DWRITE_FACTORY_TYPE_SHARED
__uuidof(IDWriteFactory)
reinterpret_cast(&pDWriteFactory_)
);
m_wicFactory?=?nullptr;
if?(!SUCCEEDED(CoInitialize(NULL)))
{
MessageBox(NULLL“Error“NULLMB_OK);
return?-1;
}
hr?=?CoCreateInstance(CLSID_WICImagingFactory
nullptr//
//CLSCTX_INPROC//
CLSCTX_INPROC_SERVER
//IID_IWICImagingFactory
//(LPVOID*)&m_wicFactory
IID_PPV_ARGS(&m_wicFactory)
);
IWICImagingFactory?*pFactory?=?NULL;
IWICBitmapDecoder?*pDecoder?=?NULL;?
HRESULT?hr1?=?CoCreateInstance(
CLSID_WICImagingFactory
NULL
CLSCTX_INPROC_SERVER
IID_IWICImagingFactory
(LPVOID*)&pFactory
);
FX_WICBitmapDecoder?pBitmapDecoder;//?=?new?FX_WICBitmapDecoder();
pBitmapDecoder.Initialize(m_wicFactory);
IWICBitmapDecoder*?wicBitmapDecoder;
//從文件中創建解碼器文件必須存在
pBitmapDecoder.CreateDecoderFromFilename(L“努力.jpg“
&wicBitmapDecoder);
pBitmapDecoder.CreateFormatConverter(wicBitmapDecoder&m_pWicFormatConverter);
return?hr;
}
HRESULT?baseFactory::CreateDeviceResources()
{
HRESULT?hr?=?S_OK;
if?(!m_pRenderTarget)
{
RECT?rc;
GetClientRect(m_hwnd?&rc);
D2D1_SIZE_U?size?=?D2D1::SizeU(
rc.right?-?rc.left
rc.bottom?-?rc.top
);
//?Create?a?Direct2D?render?target.
hr?=?m_pDirect2dFactory->CreateHwndRenderTarget(
D2D1::RenderTargetProperties()
D2D1::HwndRenderTargetProperties(m_hwnd?size)
&m_pRenderTarget
);
//創建位圖
m_pRenderTarget->CreateBitmapFromWicBitmap(m_pWicFormatConverter
&m_pBitmap);
}
return?hr;
}
void?baseFactory::DiscardDeviceResources()
{
SafeRelease(&m_pRenderTarget);
SafeRelease(&m_pLightSlateGrayBrush);
SafeRelease(&m_pCornflowerBlueBrush);
}
HRESULT?baseFactory::OnRender()
{
HRESULT?hr?=?S_OK;
m_pRenderTarget->BeginDraw();
m_pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::White));
D2D1_SIZE_F?rtSize?=?m_pRenderTarget->GetSize();
//?Draw?a?grid?background.
int?width?=?static_cast(rtSize.width);
int?height?=?static_cast(rtSize.height);
D2D1_SIZE_U?bmpSize?=?m_pBitmap->GetPixelSize();
m_pRenderTarget->DrawBitmap(m_pBitmapD2D1::RectF(0?0?bmpSize.width?bmpSize.height));
hr?=?m_pRend
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-05-19?18:37??D2D_Demo\
?????目錄???????????0??2013-05-19?19:17??D2D_Demo\Test\
?????目錄???????????0??2013-05-19?19:17??D2D_Demo\Test\Test\
?????文件?????????879??2013-05-19?18:37??D2D_Demo\Test\Test.sln
?????文件???????19456??2013-05-19?19:16??D2D_Demo\Test\Test.suo
?????文件????????3389??2013-05-19?19:15??D2D_Demo\Test\Test\ba
?????文件????????3112??2013-05-19?19:05??D2D_Demo\Test\Test\ba
?????文件????????2597??2013-05-19?18:45??D2D_Demo\Test\Test\FX_WICBitmapDecoder.cpp
?????文件?????????640??2013-01-28?14:59??D2D_Demo\Test\Test\FX_WICBitmapDecoder.h
?????文件????????4599??2013-05-19?18:37??D2D_Demo\Test\Test\ReadMe.txt
?????目錄???????????0??2013-05-19?18:37??D2D_Demo\Test\Test\res\
?????文件?????????529??2013-05-19?18:37??D2D_Demo\Test\Test\Resource.h
?????文件???????67777??2009-08-31?02:31??D2D_Demo\Test\Test\res\Test.ico
?????文件?????????792??2013-05-19?18:37??D2D_Demo\Test\Test\res\Test.rc2
?????文件?????????316??2013-05-19?18:47??D2D_Demo\Test\Test\stdafx.cpp
?????文件????????1807??2013-05-19?18:37??D2D_Demo\Test\Test\stdafx.h
?????文件?????????314??2013-05-19?18:37??D2D_Demo\Test\Test\targetver.h
?????文件??????105472??2013-05-19?18:41??D2D_Demo\Test\Test\Test.aps
?????文件????????2443??2013-05-19?18:37??D2D_Demo\Test\Test\Test.cpp
?????文件?????????493??2013-05-19?18:37??D2D_Demo\Test\Test\Test.h
?????文件???????10752??2013-05-19?18:41??D2D_Demo\Test\Test\Test.rc
?????文件????????6312??2013-05-19?19:12??D2D_Demo\Test\Test\Test.vcxproj
?????文件????????2409??2013-05-19?19:10??D2D_Demo\Test\Test\Test.vcxproj.filters
?????文件?????????143??2013-05-19?18:37??D2D_Demo\Test\Test\Test.vcxproj.user
?????文件????????4076??2013-05-19?19:16??D2D_Demo\Test\Test\TestDlg.cpp
?????文件?????????758??2013-05-19?19:12??D2D_Demo\Test\Test\TestDlg.h
?????文件??????281576??2012-12-14?23:02??D2D_Demo\Test\Test\努力.jpg
- 上一篇:C++實現的共享內存緩沖區
- 下一篇:大學課程管理系統
評論
共有 條評論