2004年08月16日
ビットマップ
WindowsAPIの関数は本当にごちゃごちゃしている・・・
描画に関する関数にしても、似たような名前が多くて、かなり混乱します。
で、わかる範囲でまとめていこうかと・・・
・DC→DC
BitBlt()
StretchBlt() // 伸縮
設定:StretchBltMode()
TransparentBlt() // 透過色の設定
AlphaBrend() // 半透明処理
PlgBlt() // 回転(平行四辺形への転送)
・DCの生成
CreateComaptibleDC()
削除:DeleteDC()
・DDB(HBITMAP)の生成
CreateBitmap()
CreateBitmapIndirect() // BITMAP構造体を利用
(↑通常は、1ピクセル1ビットのモノクロビットマップの作成)
CreateCompatibleBitmap() // DC互換ビットマップ
・DCとDDBの関連付け
SelectObject()
⇔DeleteObject()
・ファイル(リソース)→DDB
LoadImage()
LoadBitmap() // リソース
・DIB→表示(DC)
SetDIBitsToDevice()
StretchDIBits() // 伸縮
・DIB→DDB
CreateDIBitmap()
値セット:SetDIBits()
・DDB→DIB
GetDIBits()
(情報は失われている可能性がある)
・ピクセル→表示(DC)
SetPixel()
・DIB と DDB の相互参照
CreateDIBSection() // ??
投稿者 toki : 22:03 | コメント (0) | トラックバック
2004年07月27日
Win32APIでツールバ~
を作ろうとしてんだけど,激しくめんどくさい。
特にMFCをやったすぐ後にAPIを使いはじめたというのもあり...
ツールバーはメニューと違って,子ウインドウとして扱われるんですよ.(コントロールと考えれば当然?)だから今までつくってたクライアント領域をツールバー分ずらさなきゃいけないわけなんですよ...でもそれは気持ち悪いから,描画部分も子ウインドウとして定義したほうがいいような...MDIなんかつくろうとしたら一体どんなコードになるんだ...おそろしや...
ウインドウプロシージャはどんどん肥大化してるし...(分割すべきなの??)
かといって,MFC使ったところで機能貧弱→API呼び出すのも汚いと思うんですよね.全然OOPにならないし.
オブジェクト指向でやるなら,元からWinMainもクラスになってるC#(というか.NET)使ったほうがいいの??
でもそれこそ周りの誰も読めないコードになるんだろうな...
on_
そのうち,ちゃんとカテゴリで覚書きつづろうかな