视觉对象C++使用变量命名的图片框
Visual C++ picturebox naming with a variable
我正在为一个职业创建一个战舰游戏,并有一个图片框网格作为棋盘。
我想知道是否有任何方法可以将图片框引用为变量,以便我可以使用循环遍历它们。
命名方案是 pA1-pA10 表示列 1,pB1-pB10 表示列 2,依此类推,直至第 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");
}
pA1 等的类型是什么? 您不需要命名方案,而是需要索引方案。无论类型是什么,您都可以将所有这些指针放入 10 x 10 数组中,然后迭代以处理网格的所有空间。
搞清楚了。正是你说的斯科特麦克普。感谢您的帮助。不知为何,我的脑子里一片空白。
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");
}
}
}
相关文章:
- 你能重载对象变量名本身返回的内容吗
- 将包含C样式数组的对象初始化为成员变量(C++)
- 将地址分配给本地指针后,公共对象的变量将消失
- 为什么我们再次从结构对象创建结构变量?
- 如何在初始化列表中的构造函数之后初始化变量/对象?
- 从变量对象指向基对象
- C++ - 我可以创建编译时变量对象吗?
- 动态数组添加元素而不创建结构变量/对象
- Visual Studio C++ 编译器在局部变量对象上的奇怪行为
- 其中定义函数的静态局部变量对象
- QT良好的全局变量/对象处理
- r 值的匿名变量对象与真实对象
- QT 测试 - 变量/对象失去价值
- 访问私有变量对象
- C++访问具有相同名称的变量/对象的命名空间中的全局变量/对象
- C++-访问全局变量对象
- 表达式必须具有类类型:c++,将实例变量对象作为指针传递(点表示法参数)
- C++变量/对象和堆内存管理
- 如何在每次迭代中创建一个新变量/对象的循环
- 初始化现有变量/对象的新构造函数