ビットマップの回転 – プログラミング – Home

通知
すべてクリア

[解決済] ビットマップの回転


はな
 はな
(@はな)
ゲスト
結合: 23年前
投稿: 123
Topic starter  

ビットマップを回転表示したいのですが、なかなかできません。
CDC::PlgBltというのが使えそうなのですが、
これをどう使っていいのかが分かりません。
サンプルなどがみつからないので、どなたか教えていただけませんか。

VC++ 6.0
Win 2000
MFC


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

CDC::PlgBltは、矩形を斜めにずらしたように平行四辺形に変形する
関数ですので、回転とは関係ありませんね。

サンプルを見つけるには、Google等の検索エンジンで
「ビットマップ 回転」と入力し、検索してみてください。


返信引用
た
 た
(@た)
ゲスト
結合: 23年前
投稿: 16
 

上下左右反転を90°,180°,270°の回転として見るなら PlgBltでできますよ。
一つめのパラメータ lpPointに4つの頂点のうち3つを適切な順番でわたしてあげればいいだ
けです。

ただ PlgBltは Windows 9x系では動作しなかったと思います。


返信引用
はな
 はな
(@はな)
ゲスト
結合: 23年前
投稿: 123
Topic starter  

すいません。回転という言葉がおかしかったかもしれません。
とりあえず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 ) ;

====================================================


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました