0

ダイアログに画像コントロール ボックス (CStatic) があります。ユーザーがダイアログのボタンを押すと、onPaint() で画像を描画する必要があります。問題は、ダイアログの読み込み時に画像が描画されることです。これを防ぎ、ボタンを押したときにのみ呼び出すにはどうすればよいですか。

私の onPaint コード;

void CStaticGraph::OnPaint()
{
    POINT xy[1000];
    CPaintDC dc(this); // device context for painting

    CRect Recto;
    char LocDim[80];

    GetWindowRect(&Recto);

    CPoint pBottom,pTop,pLeft;
    CPoint p[50];


    pBottom.SetPoint(0,0);
    pTop.SetPoint(0,Recto.Height());
    pLeft.SetPoint(Recto.Width(),Recto.Height());

    dc.MoveTo(pBottom);
    dc.LineTo(pTop);
    dc.LineTo(pLeft);

    int y[] ={80,120,180,200};
    int x=0;
    for(int i=0; i<sizeof(y);i++){
        p[i].SetPoint(Recto.Height()-x,y[i]);
        if(i>0){
                dc.MoveTo(p[i-1]);
                dc.LineTo(p[i]);


        }
        x+=50;
    }
}

ご覧のとおり、グラフをプロットしているため、ボタンを押したときにデータ (y[] 値) を渡す必要もあります。私はまだそれをしていません。
ありがとう。

4

2 に答える 2

1

他の回答に加えて、Invalidate()変更する必要もあります

for(int i=0; i<sizeof(y);i++)

for(int i=0; i<sizeof(y)/sizeof(int);i++)
于 2013-10-02T06:41:42.443 に答える