MFC で OpenGL

yoya2009-02-14

↑この本を何となく購入したので、さっそくプログラミングするかと思ったら、
フリーで使える 2008 Express Edition は MFC が使えませんでした。

 * Visual C++ 2008 Express Edition には MFC と ATL は含まれていますか。 
いいえ。Visual C++ 2008 Express Edition には MFC と ATL は含まれていません。
MFC と ATL は Visual Studio 2008 Standard Edition 以上に含まれています。

昔、購入した Visual C++ 6.0 standard edition があったので、こっちでコンパイル
以下のような違いはあるけど何となく進められました。

  • lib の追加の仕方。6.0 では「プロジェクト>設定>リンク」
  • View クラスがなくて Dlg クラスに実装
  • ハンドラは、Dlg クラスを右クリックして「Windows メッセージハンドラの追加」を選択
  • onDraw はないので onPaint 上で CPainDC dc(this) + dc.GetSafeHdc()

といった感じで、青く塗りつぶすだけのサンプルプログラムが動作しました。

/* CDialog::OnPaint(); */
CPaintDC dc(this); // 描画用のデバイス コンテキスト
wglMakeCurrent(dc.GetSafeHdc(), m_hGLRC);
glClearColor(0.0f, 0.0f, 0.5f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
wglMakeCurrent(NULL, NULL);

さて、開発環境は出来たので遊ぶとしますか。