MFC

WindowsでCLAPACKを使おう

やあ子供たち。もうすっかり秋も深まり、庭の柿の木になってる柿もすっかり刈り取り時期を迎えたよ。けど今年はあまり採れなかった。昨年は300個近くとれたのだけど今年は50個も採れてないんじゃないかな。 さあ今日はWindowsでCLAPACKを使う話だよ。それも…

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文字セットを使用する」になっ…

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

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

GDIPlusってのがあったんだ

へー、VC2008SP1とかだともう #include <gdiplus.h> using namespace Gdiplus; とかやって、もういきなりGDIPLUSなるものが使えちゃうんだ。しかもそしたらいきなりGradientFill()とか使って上の図みたいに矩形領域のグラデーションペイントができるようになるんだへー</gdiplus.h>…

GetDC()について

以下、自分用のメモなので。GDIとか詳しくなかったんで。 for( int i=0; i<10; ++i ){ HDC dc = ::GetDC( this->m_picbox2.GetSafeHwnd() ); }// i とすると、同じウィンドウのデバイスコンテキストを取得してると思うのだが、様々に異なる値が10回返されて…

リストビューのオーナードロー日記

またまたMFCです。こんなの作ってみた。でもどのみちスムーススクロールしないので、いやスムーススクロールへの道はないことがわかったので、敗北感たっぷりなのだが。以下はリストビューのオーナードローのメモ。流れとしては 基本クラスを継承し、 DrawIt…

MFCと不毛な時間

(後日記)VC++2008からMFCは再び進化を始め、C++のネイティブコードの重要性を再認識し始めたマイクロソフト戦略の一部なのか、TR1やらMFCの新機能、FeaturePackの配布など、いろいろされているようなので、以下のMFCを過去の遺物と割り切ったような語り方…