ビットマップを回転表示したいのですが、なかなかできません。
CDC::PlgBltというのが使えそうなのですが、
これをどう使っていいのかが分かりません。
サンプルなどがみつからないので、どなたか教えていただけませんか。
VC++ 6.0
Win 2000
MFC
CDC::PlgBltは、矩形を斜めにずらしたように平行四辺形に変形する
関数ですので、回転とは関係ありませんね。
サンプルを見つけるには、Google等の検索エンジンで
「ビットマップ 回転」と入力し、検索してみてください。
上下左右反転を90°,180°,270°の回転として見るなら PlgBltでできますよ。
一つめのパラメータ lpPointに4つの頂点のうち3つを適切な順番でわたしてあげればいいだ
けです。
ただ PlgBltは Windows 9x系では動作しなかったと思います。
すいません。回転という言葉がおかしかったかもしれません。
とりあえずCDC::PlgBltの使い方は以下のような感じで解決しました。
これを応用すれば大丈夫だと思います。
dairygoodsさん、たさん、どうもありがとうございました。
====================================================
POINT p[3] ;
p[0].x = 0 ;
p[0].y = 200 ;
p[1].x = 0 ;
p[1].y = 100 ;
p[2].x = 10 ;
p[2].y = 200 ;
CDC dcBmp ;
CBitmap msk, bmp, *old ;
CDC* pDC = this->GetDC() ;
bmp.LoadBitmap( IDB_BITMAP ) ;
dcBmp.CreateCompatibleDC( pDC ) ;
old = dcBmp.SelectObject( &bmp ) ;
pDC->PlgBlt( p, &dcBmp, 0, 0, 100, 10, m, 0, 0 ) ;
====================================================