用变量命名的Visual C ++ picturebox

时间:2014-12-04 04:42:43

标签: c++ picturebox

我正在为一个班级创建一个战舰游戏,并且有一个图片框网格作为棋盘。

我想知道是否有任何方法可以将图片框称为变量,因此我可以使用循环遍历它们。

命名方案是第1列为pA1-pA10,第2列为pB1-pB10,第10列。

我需要做的是找出一种方法将这个函数放在一个循环中,这样它就可以遍历列表,而不必为每个图片框都有这个代码。

此代码用于检查数组中存储的值,并将正确的图像加载到图片框中。

    if (pIsShip(0, 0)=='s')
    {
        pA1->Load("Ship.png");
    }
    else if (pIsShip(0, 0) == 'w')
    {
        pA1->Load("Water.png");
    }
    else if (pIsShip(0, 0) == 'h')
    {
        pA1->Load("Hit.png");
    }
    else if (pIsShip(0, 0) == 'm')
    {
        pA1->Load("Miss.png");
    }

2 个答案:

答案 0 :(得分:0)

pA1等的类型是什么?您不需要命名方案,您需要索引方案。无论何种类型,您都可以将所有这些指针放入一个10 x 10数组,然后迭代以处理网格的所有空间。

答案 1 :(得分:0)

弄清楚了。正是你所说的ScottMcP。谢谢您的帮助。出于某种原因,我的想法正在消除那个。

    static array<PictureBox^, 2>^ picBoxNames = gcnew array<PictureBox^, 2>(10, 10);

然后初始化数组中的每个项目并运行此代码,它完美地运行。

    for (int row = 0; row < 10; row++)
        {
            for (int column = 0; column < 10; column++)
            {
                if (pIsShip(row, column) == 's')
                {
                    picBoxNames[row,column]->Load("Ship.png");
                }
                else if (pIsShip(row, column) == 'w')
                {
                    picBoxNames[row,column]->Load("Water.png");
                }
                else if (pIsShip(row, column) == 'h')
                {
                    picBoxNames[row,column]->Load("Hit.png");
                }
                else if (pIsShip(row, column) == 'm')
                {
                    picBoxNames[row,column]->Load("Miss.png");
                }
            }
        }