8.31_OnBnClickedButton1()最终代码

void CExercise2Dlg::OnBnClickedButton1()
{
    // TODO: 在此添加控件通知处理程序代码

    //获得两个下拉菜单当前选择的数据值
    int index,column;
    index=((CComboBox*)GetDlgItem(IDC_COM_One))->GetCurSel();
    column=((CComboBox*)GetDlgItem(IDC_COM_Two))->GetCurSel();

    //列表清空
    m_list.DeleteAllItems();     // 列表全部清空
    GetDlgItem(IDC_PICTURE1)->ShowWindow(FALSE);
    GetDlgItem(IDC_PICTURE1)->ShowWindow(TRUE);

    //生成动态二维数组
    int **data;                
    data=new int *[index+2];
    for(int i=0; i<index+2; i++)
    {
        data[i]=new int[index+2];
    }
    //初始化二维数组
    for(int i=0; i<index+2; i++)
    {
        for(int j=0; j<index+2; j++)
        {
            data[i][j]=1;
        }
    }


    //列表显示随机数
     for (int m = 0; m < index+1; m++)
    {
        CString strItem = _T("");
        strItem.Format("%d", m);
        m_list.InsertItem(m, strItem);

        int n;

        //  设置列表中项的文本和数据
        for (n = 1; n < column+2; n++)
        {
            int num = rand()%10-rand()%10;

            data[m][n]=num;            //  数组中保存随机数


            CString strText = _T("");
            strText.Format(_T(" %d "), num);  //类型转化

            m_list.SetItemText(m, n, strText);
            m_list.SetItemData(m, m);
        }
    }


    //建立笔刷画线
    CDC *pDC;
    pDC = m_picShow.GetDC();
    CPen Pen1(PS_SOLID,2,RGB(32,178,170));
    CPen Pen2(PS_SOLID,2,RGB(139,115,85));
    CPen Pen3(PS_SOLID,2,RGB(135,206,255));
    CPen Pen4(PS_SOLID,2,RGB(240,128,128));
    CPen Pen5(PS_SOLID,2,RGB(112,128,144));

    CPen *oldPenx = pDC->SelectObject(&Pen1);


    for(int n=1;n < column+2;n++)
    {
        int j;
        int x=30;
        if(n==2)
            oldPenx = pDC->SelectObject(&Pen2);
        else if(n==3)
            oldPenx = pDC->SelectObject(&Pen3);
        else if(n==4)
            oldPenx = pDC->SelectObject(&Pen4);
        else if(n==5)
            oldPenx = pDC->SelectObject(&Pen5);



        pDC->MoveTo(30,110-12*data[0][n]);

        for(j = 1;j < index+1; j++)
        {
            if(index<10)
                x+=55;
            else if(index<21)
                x+=29;
            else if(index<30)
                x+=20;
            else if(index<41)
                x+=14;
            else if(index<61)
                x+=9;
            else if(index<81)
                x+=7;
            else 
                x+=5;
            pDC->LineTo(x,110-12*data[j][n]);
            //x+=30;
            //pDC->SelectObject(oldPenx);
        }
    }

    for(int i=0; i<index; i++)
    {
        delete[] data[i];
    }
    delete[] data;

}

猜你喜欢

转载自blog.csdn.net/weixin_38593332/article/details/82259167