メイン

Programming(Windows API) アーカイブ

2004年07月27日

Win32APIでツールバ~

を作ろうとしてんだけど,激しくめんどくさい。
特にMFCをやったすぐ後にAPIを使いはじめたというのもあり...
ツールバーはメニューと違って,子ウインドウとして扱われるんですよ.(コントロールと考えれば当然?)だから今までつくってたクライアント領域をツールバー分ずらさなきゃいけないわけなんですよ...でもそれは気持ち悪いから,描画部分も子ウインドウとして定義したほうがいいような...MDIなんかつくろうとしたら一体どんなコードになるんだ...おそろしや...
ウインドウプロシージャはどんどん肥大化してるし...(分割すべきなの??)
かといって,MFC使ったところで機能貧弱→API呼び出すのも汚いと思うんですよね.全然OOPにならないし.
オブジェクト指向でやるなら,元からWinMainもクラスになってるC#(というか.NET)使ったほうがいいの??
でもそれこそ周りの誰も読めないコードになるんだろうな...

on_

そのうち,ちゃんとカテゴリで覚書きつづろうかな

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() // ??

About Programming(Windows API)

ブログ「days」のカテゴリ「Programming(Windows API)」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはProgramming(OpenGL)です。

次のカテゴリはScienceです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34