ソフトウェアでサムネイルの周りに影を描きたいです。CreateHatchBrush が役立つようですが、使用方法がわかりません。C++ のサンプルを提供してもらえますか? どうもありがとう!
2 に答える
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 );
}
お役に立てれば!
于 2008-12-30T00:51:30.723 に答える
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);
于 2008-12-29T15:49:58.603 に答える