2014-12-06 102 views
2

我目前正在学习D2D的C++和我想创建一个填充的矩形,它似乎是我的代码有点不对,因为我最终只是边缘正在填补 这里是我的代码(初始化是正确的叫我创建的Win32 WINAPI窗口后,然后绘制函数被调用)Direct2d + winapi矩形没有完全填充

bool GraphicClass::Initialize() 
{ 
    HRESULT result; 
    //Initialize D2DFactory 
    result = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &_d2dFactory); 
    if (FAILED(result)) 
    { 
     return false; 
    } 
    D2D1_SIZE_U size = D2D1::SizeU(
     _rc.right - _rc.left, 
     _rc.bottom - _rc.top 
     ); 
    //Initialize D2DRenderTarget 
    HRESULT hr = _d2dFactory->CreateHwndRenderTarget(
     D2D1::RenderTargetProperties(), 
     D2D1::HwndRenderTargetProperties(
      _hwnd,size 
     ), 
     &_d2dRenderTarget 
     ); 
    if (FAILED(result)) 
    { 
     return false; 
    } 
    else 
    { 
     _d2dRenderTarget->CreateSolidColorBrush(
      D2D1::ColorF(D2D1::ColorF::Blue), 
      &_blueBrush 
      ); 
    } 
    return true; 
} 

bool GraphicClass::DrawD2D() 
{ 
    HRESULT result; 
    _d2dRenderTarget->BeginDraw(); 
    _d2dRenderTarget->DrawRectangle(
     D2D1::RectF(
     _rc.left + 100.0f, 
     _rc.top + 100.0f, 
     _rc.right - 100.0f, 
     _rc.bottom - 100.0f), 
     _blueBrush); 
    result = _d2dRenderTarget->EndDraw(); 
    if (FAILED(result)) 
    { 
     return false; 
    } 
    return true; 
} 

可能是一个非常愚蠢的小失误,但我真的想知道如何填写完整矩形

回答