2010-02-01から1ヶ月間の記事一覧

GetDCPolite

上記ネタと全く同じ話でGetDCPoliteを用意したよ。これはGetDCしたら必ずReleaseDCをしましょうという教訓をマクロにまとめてしまい、教訓をうっかり忘れても大丈夫なようにしよう、いやむしろ、積極的に教訓は忘れてこっちを使おう!というためのものだ。ソ…

SelectObjectPolite

今日はお行儀のよいSelectObjectマクロを作成してみたよ。 子供たちも知っているように、Win32のGDIプログラミングではSelectObjectしたら必ず最後に、以前にセットされていたオブジェクトでSelectObjectしなおさないといけないんだったね。具体的にはその返…

GradientFill関数の使い方Part1

やあ子供たち。冬のオリンピック見てるかい?高橋選手による日本初のフィギュアスケート男子メダル獲得は素晴らしかったね! 今日はGradientFillを簡単に利用するための関数を作ったよ。もはやこれがGDIなのかGDIplusなのかおじさんにもよくはわからないしそ…

本日のその他自分用メモ(CDialog関係)

CXXDialog::OnPaint() の中では、CDialog::OnPaint()を最後に呼ばないとフリーズした感じになってしまうので半日ハマった。OnPaint()の処理途中で抜ける場合も必要なので、決して忘れてはいけない。今回は、ある条件が満たされたときには描画処理をせずに抜…

本日のその他自分用メモ(CString⇒char*変換関係)

プロジェクトのプロパティ>全般>文字セットで「マルチバイト文字セットを使用する」になっていると、CString cstr;から、char p[];への変換は、strcpy( p, cstr );とかであっけなく簡単にできるのだが、ここの設定が「Unicode文字セットを使用する」になっ…

矩形領域への画像出力について

やあみんな、今日はちょっと当たり前そうなんだけど、書き残しておきたい話をするぞ。まあ、StretchBlt絡みと言えばStretchBlt絡みの話題かな。 ある決まったサイズの矩形領域があって、任意のサイズ・縦横比の画像全体を、このサイズ固定の矩形領域に描画し…

N88-OpenGLインタープリタ

インタープリタ的なその場の入力でOpenGL描画できてしまうシステムがあると面白いかも知れない。その昔、(そうそれはもう20年以上も前のことだ)N88-Basicというものがあった。N88-Basicでは、プログラムとしてのみでなく、コマンドラインに描画コマンドを…

GetDC、ReleaseDCのCWnd::版には気をつけろ

みんな大変だ、おじさんは今日こんな記事を見つけてしまったよ。⇒http://support.microsoft.com/kb/819635/jaというわけで、本日の日記のタイトルみたいな話になるわけですか。もう解決してんのかなコレ? CWnd::GetDC()したら、必ずCWnd::ReleaseDC()しない…