ソフト開発塾

VC5 OnDraw

OnDrawに注目

/////////////////////////////////////////////////////////////
// CC0105CView クラスの描画

void CC0105CView::OnDraw(CDC* pDC)
{
    CC0105CDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    // TODO: この場所にネイティブ データ用の描画コードを追加します。
}
再描画は必要なとき
OnDrawが呼び出される。

このままコンパイル実行すると、次の結果になります。

vc_ondraw12.gif (2552 バイト)

次に、TextOutを使用して、文字を表示します。

/////////////////////////////////////////////////////////////
// CC0105CView クラスの描画

void CC0105CView::OnDraw(CDC* pDC)
{
    CC0105CDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);

    // TODO: この場所にネイティブ データ用の描画コードを追加します。
    pDC->TextOut(0,0,"TEST C0105");
}
ここで、使用しているTextOutは
APIではなく、CDCのクラスです。
pDCがポインタで宣言されているため
「.」ではなく「->」になっている。

コンパイル実行すると、次の結果になります。

vc_ondraw13.gif (2839 バイト)

文字が、表示されたことを確認する。

 

グラフィック関係を表示してみよう。

線/円

MoveTo LineTo Ellipse Arc

POINT CPoint RECT CRect

    pDC->Ellipse(100,100,350,350);
    pDC->MoveTo(0,0);
    pDC->LineTo(200,200);

    POINT pt;
    pt.x=400;
    pt.y=0;
    pDC->LineTo(pt);

    CPoint    pt2;
    pt.x=600;
    pt.y=200;
    pDC->LineTo(pt2);

    CRect    rect;
    rect.left=100;
    rect.right=200;
    rect.top=0;
    rect.bottom=50;
    pDC->Ellipse(rect);

    RECT    rect2;
    rect2.left=100;
    rect2.right=200;
    rect2.top=50;
    rect2.bottom=100;
    pDC->Ellipse(&rect2);
 

 

CPointの特殊な使用方法

    pt2.x=600;
    pt2.y=000;
    pDC->MoveTo(pt2);
    pt.x=15;
    pt.y=30;
    for(int i=0;i<10;i++){
        pt2+=pt;
        pDC->LineTo(pt2);
        pt.x=(-pt.x);
    }
 

超初心者コース 前ページ トップページ ソフト開発塾 リンク集 関連リンク


今日のアクセス人目