まず、左ウインドウのResorce とかかれた札をクリックし、step1リソースが表示されたらここもクリックし、Menuディレクトリをクリックし、さらにIDR_MAINFRAMEをクリックします。ついでですのでメニューの整理をしましょう。ファイルのところは「開く」「上書き保存」「アプリケーションの終了」だけ残してあとは削除します。「上書き保存」は「データファイルの保存」などに名称変更します。「編集」「ヘルプ」などの使わない項目は削除して「データ解析」メニューを付加します。「データ解析」メニューのプルダウンメニューにキャプション「データの和を求める」を加え、IDをID_SumData などとします。
void CStep1View::OnSumData()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
SumData=0.0;
for (int i=0; i<ndata; i++){
if (x[i]>=Xmin && x[i]<=Xmax && y[i]>=Ymin && y[i]<=Ymax) {
SumData=SumData+y[i];
}
}
MSumData=1;
RedrawWindow();
}
CStep1View::CStep1View()
{
// TODO: この場所に構築用のコードを追加してください。
MRegion=0;
Ci=0;
//今回はここです。
MSumData=0;
SumData=0.0;
}
void CStep1View::OnDraw(CDC* pDC)
{
CStep1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: この場所にネイティブ データ用の描画コードを追加します。
int xt, yt;
char name[20], *t1;
for (int i=0; i<ndata; i++){
if (x[i]>=Xmin && x[i]<=Xmax && y[i]>=Ymin && y[i]<=Ymax) {
xt=(int) 550*(x[i]-Xmin)/(Xmax-Xmin)+100;
yt=(int) -300*(y[i]-Ymin)/(Ymax-Ymin)+350;
pDC->SetPixel(xt,yt,RGB(0,0,255));
}
}
// pDC->Rectangle(100,50,650,350);
if (ndata>0) {
CBrush NewBrush;
NewBrush.CreateSolidBrush(RGB(255,0,0));
CBrush* OldBrush=pDC->SelectObject(&NewBrush);
CRect DRect(100,50,650,350);
pDC->FrameRect(DRect, &NewBrush);
pDC->SelectObject(OldBrush);
NewBrush.DeleteObject();
pDC->TextOut(250,30, "VC++ for Chemist");
t1 = gcvt(Xmin, 8, name);
pDC->TextOut(100,360, t1);
t1 = gcvt(Xmax, 8, name);
pDC->TextOut(640,360, t1);
pDC->SetTextColor(RGB(255,0,0));
t1 = gcvt(Ymax, 8, name);
pDC->TextOut(40,50, t1);
t1 = gcvt(Ymin, 8, name);
pDC->TextOut(40,330, t1);
//データの総和はここから
if (MSumData==1) {
CPen NewPen;
NewPen.CreatePen(PS_SOLID, 2, RGB(0,255,255));
CPen* OldPen=pDC->SelectObject(&NewPen);
pDC->Rectangle(20,20,150,40);
pDC->SelectObject(OldPen);
NewPen.DeleteObject();
pDC->SetTextColor(RGB(0,0,0));
pDC->TextOut(20,20, "SUM:");
pDC->SetTextColor(RGB(0,255,0));
t1 = gcvt(SumData, 8, name);
pDC->TextOut(60,20, t1);
}
}
}