2012年8月25日土曜日

何年かぶりにMFCの復習をしてみる(Windowつくって中になんか書く)

Visual Studio2012が公開されて、Professional版も3ヶ月は無料で使える(評価目的だけど)そうなのでインストールしてみた。
せっかくのProfessional版だと、MFCが使えるのでひさびさにいじりはじめてみた。
所有しているのは古い書籍ばっかりだし、近年のMFCなんてさっぱり触ってないのでとっかかりもよくわからないや。
昔のざっくりした印象だと、ちょっと遊ぶにはOnDraw()に書いたらだいたいおっけーって印象なので、本を片手にやってみる。
void CEx03aView::OnDraw(CDC* pDC)
{
    pDC -> TextOutW(0, 0, CString("Hello World"));
}


こんなサンプルでも動くと楽しい。 昔のサンプルはcharだったけど、TextOut()がTextOutW()でCStringじゃないとエラーになるのは厳格になったってことかな。まあ、ざっくりでもなんとかなるのが、インテリセンスのありがたさ。
void CEx03aView::OnDraw(CDC* pDC)
{
    pDC -> TextOut(0, 0, "Hello World");
}
ひきつづき、
void CEx03aView::OnDraw(CDC* pDC)
{
 pDC -> TextOutW(0, 0, CString("Hello World"));
 pDC -> SelectStockObject(GRAY_BRUSH);
 pDC -> Ellipse(CRect(0, 20, 100, 120));
}

おお!いい感じ。こんな簡単な話なら大歓迎。 って、思ったけど座標系の話はやっぱ面倒だなあ。
すげー面倒って思い出してきた。