- 締切済み
領域の塗りつぶし
ディスプレイに長方形を描画して、その長方形の線の外側を1ドットずつ透過色で塗りつぶしたいです。 長方形を描くことはできたので塗りつぶしの方法を教えていただきたいです。 わかります方、よろしくお願いします。 開発環境は WindowsXP VC++6.0です。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- sha-girl
- ベストアンサー率52% (430/816)
透過色で塗りつぶすという考えがおかしいです。 また質問が大雑把すぎます。 No1 Kaoneさんの「透過色ってどういう意味ですか」の補足要求についてもフォローも曖昧です。 透過したいとは、Windowsのデスクトップ(他のアプリを含めて)に対してなのか 自分自身のアプリ内で完結したのでいいのかも、この質問からは読み取れません。 (Windowsのデスクトップに対して透過させたいというなら基本的には無理です。) 例えばゲームのキャラクタ等を背景と合成する場合、 抜き色を指定する場合があります(透過色と呼ぶこともあります)が、 それは、その抜き色の部分を最初から描画しないのであって 後から透過しているわけではありません。 質問者さんの意図とは違うかもしれませんが もし背景の上に塗りつぶした長方形を1ドットずつ縮小したいのなら 背景を描画 ↓ sx+1,sy+1,dx-1,dy-1の長方形を描画 ↓ 背景を描画 ↓ sx+2,sy+2,dx-2,dy-2の長方形を描画 ・ ・ ・ C++風に書くと wihle( dx>0 && dy>0 ){ 背景を描画; sx,sy,dx,dyの長方形を描画; sx++ ; sy++ ; dx-- ; dy--; }
- Kaone
- ベストアンサー率60% (33/55)
もうすこし具体的に質問してくれないとわかりません。 ディスプレイに描画って、デスクトップに描画するということでしょうか? HDC hDC = GetDC(NULL); あと透過色ってどういう意味でしょうか?
補足
拙い質問で申し訳ございませんでした。 X = 320 Y = 240 の領域内に描画した長方形の線の外側を1ドットずつ透過させたいと思っております。 因みに描画した長方形は sx = 26 //開始X座標 sy = 46 //開始Y座標 dx = 268 //X方向ピクセル数 dy = 148 //Y方向ピクセル数 で描画しております。