2008-12-29 33 views

回答

0

最簡單的方法是使用GDI+做到這一點。這裏有一個快速和骯髒的陰影渲染示例:

void Render(HDC hdc) 
{ 
    Graphics gr(hdc); 
    Image image(L"sample.jpg"); 
    const int SHADOW_OFFSET = 7; 

    // 
    // draw shadow 
    // 
    SolidBrush shadow(Color(190, 190, 190)); 
    Rect rc(50, 50, image.GetWidth(), image.GetHeight()); 
    rc.Offset(SHADOW_OFFSET, SHADOW_OFFSET); 
    gr.FillRectangle(&shadow, rc); 

    // 
    // draw the image 
    // 
    gr.DrawImage(&image, 50, 50, image.GetWidth(), image.GetHeight()); 

    // 
    // draw a border 
    // 
    Pen border(Color(0, 0, 0), 1); 
    rc.Offset(-SHADOW_OFFSET, -SHADOW_OFFSET); 
    gr.DrawRectangle(&border, rc); 
} 

希望這有助於!

0

我沒有一個示例,但有一些關於Windows中刷子的一般用法的提示。

CreateHatchBrush()返回句柄。您需要使用該句柄將該畫筆刷到您用於渲染的設備上下文中的當前畫筆。調用設備上下文的SetObject功能(普通的Windows GDI調用版本):

HDC myDC = GetDC (hWnd); //pass your window handle here or NULL for the entire screen 
HBRUSH hatchBrush = CreateHatchBrush (HS_DIAGCROSS, RGB (255,128,0)); 
HBRUSH oldBrush = SelectObject (myDC, hatchBrush); 
//draw something here 
SelectObject (myDC, oldBrush); //restore previous brush 
ReleaseDC (myDC); 
相關問題