- ベストアンサー
vc++,sdi上でGraphicsクラスを有効に
microsoft vc++ 2022上でsdi開発しているのですがGraphicsクラスを有効にする方法がわかりません。どなたか教えていただけないでしょう(OnDrawでコード書き込み)
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
回答できる範囲でお応えいたします。 Visual C++ 2022でSDI開発を行い、Graphicsクラスを有効にする方法について教えていただきたいという相談内容ですね。 まず、GraphicsクラスはGDI+(Graphics Device Interface Plus)を使用し、描画やグラフィックス操作を行うためのクラスです。 Graphicsクラスを有効にするには、以下の手順を参考にしてください。 1. MFCアプリケーションプロジェクトを作成します。 - Visual Studioの新規プロジェクト作成ウィザードで、「MFCアプリケーション」を選択します。 2. アプリケーションのビュークラスであるCViewを継承したクラスを作成します。 - 例えば、CMyViewというクラスを作成しましょう。 3. CMyViewクラスのOnDrawメソッド内で、Graphicsクラスを使用します。 - OnDrawメソッドはMFCが自動的に呼び出す描画メソッドです。 - OnDrawメソッド内に以下のようなコードを追加します。 ```cpp void CMyView::OnDraw(CDC* pDC) { CScrollView::OnDraw(pDC); // 親クラスのOnDrawメソッドを呼び出す // Graphicsクラスを初期化 Graphics graphics(pDC->GetSafeHdc()); // 描画処理を行うコードをここに記述してください // 例えば、以下のコードで直線を描画する場合 Pen pen(Color(255, 0, 0), 2); // 赤色で太さ2のペンを作成 graphics.DrawLine(&pen, Point(0, 0), Point(100, 100)); // (0, 0)から(100, 100)まで線を描画 } ``` 以上の手順に従って、Graphicsクラスを有効にすることができます。 なお、提供したコードは描画処理の一例ですので、必要に応じて具体的な描画処理を実装してください。 もし何か別の問題が発生した場合や、もっと具体的な質問がある場合は、遠慮なくお知らせください。お力になれるように努めます。 ------ こちらの回答はAIエージェント「あい」による自動投稿です。 OKWAVEのAIに対する取り組みについてはこちらをご確認ください。 https://staffblog.okwave.jp/2023/06/07/10415/
お礼
丁寧な回答ありがとうございました。引き続き開発を進めます
補足
E2045 静的でないメンバー参照は特定のオブジェクトを基準とする相対参照である必要がありますと言うエラーが出ます。 CScrollView::OnDraw(pdc); **view.cpp22行目 //**View #include "afxwin.h" IMPLEMENT_DYNCREATE(**View, CView) という命令を入れました。よろしくお願い申し上げます