2012-06-03 48 views
0
DrawBorderBox(55, 20, 200, 50, 4, fontBlack, pDevice); 

void Menu::DrawBorderBox(int x, int y, int w, int h, int thickness, D3DCOLOR Colour, LPDIRECT3DDEVICE9 pDevice) 
{ 
    //Top horiz line 
    DrawFilledRect(x, y, w, thickness, Colour, pDevice); 
    //Left vertical line 
    DrawFilledRect(x, y, thickness, h, Colour, pDevice); 
    //right vertical line 
    DrawFilledRect((x + w), y, thickness, h, Colour, pDevice); 
    //bottom horiz line 
    DrawFilledRect(x, y + h, w+thickness, thickness, Colour, pDevice); 
} 

void Menu::DrawFilledRect(int x, int y, int w, int h, D3DCOLOR color, LPDIRECT3DDEVICE9 pDevice) 
{ 
    //We create our rectangle to draw on screen 
    D3DRECT BarRect = { x, y, x + w, y + h }; 
    //We clear that portion of the screen and display our rectangle 
    pDevice->Clear(1, &BarRect, D3DCLEAR_TARGET | D3DCLEAR_TARGET, color, 0, 0); 
} 

輸入到DrawBorderBox的值用於BarRect,那麼對DrawFilledRect的調用不使用所有參數嗎?那麼BarRect是否假設爲h使用函數的所有參數?我很困惑

所以我得到(55,20)點1和(255,70)點2?但是這說它畫了一條線?我很困惑。

我認爲厚度被用作BarRect中的h?我是對的嗎? 這意味着它實際上會覆蓋原始方塊的4個像素?

+0

按照慣例,變量和函數名應該以小寫字母開頭,順便說一句。 –

+5

@AndrewMarshall C++中沒有約定 – Pubby

+1

或者說,有數百個約定。你指的是哪一個? –

回答

0

BorderRect繪製了4個矩形,它們勾畫出兩點(55,20)(255,70)指定的矩形。看起來不對的是,4個矩形上的端蓋似乎沒有正確排列。在x,y,w和h上應該有偏移,以便在較大的框內繪製所有4個矩形,或者應該稍微延長框外。