如何将此C#foreach代码转换为C++;? 我用VisualStudio窗口窗体用C++制作了Ti-Tac趾游戏。 如何将这个C代码转换成C++代码? private Void disableButtons() { try { foreach (Control c in Controls) { Button b = (Button)c; b.Enabled = false; } } catch{ } } 不能将其转换为纯C++代码,而不使用任何具有“强>控件按钮< /强>”的附加库,而按钮类具有“启用”公共成员。 但是,您可以将它转换为 C++ +CLI代码,也可以混合纯C++代码。 private Void disableButtons() { try { for each (Control^ c in Controls) { Button^ b = (Button^)c; b->Enabled = false; } } catch{ } }
下面是一个关于如何在C++中使用C的如何将此C#foreach代码转换为C++;? 我用VisualStudio窗口窗体用C++制作了Ti-Tac趾游戏。 如何将这个C代码转换成C++代码? private Void disableButtons() { try { foreach (Control c in Controls) { Button b = (Button)c; b.Enabled = false; } } catch{ } } 不能将其转换为纯C++代码,而不使用任何具有“强>控件按钮< /强>”的附加库,而按钮类具有“启用”公共成员。 但是,您可以将它转换为 C++ +CLI代码,也可以混合纯C++代码。 private Void disableButtons() { try { for each (Control^ c in Controls) { Button^ b = (Button^)c; b->Enabled = false; } } catch{ } },c++,visual-c++,C++,Visual C++,下面是一个关于如何在C++中使用C的foreach的示例: 如果您想更改原始元素,可以在type和name之间加上(&D) < > >(类型和名称:集合){/ /您的代码} < /代码> < p>您已经标记了这个VisualC++,所以我假设您使用的是MFC。如果您使用的是Qt或wxWidgets或其他东西,答案会有所不同 如果您已经在一个容器中设置了控件ID,并且要为每个控件打开该容器,则: UINT Controls[] = { IDC_BUTTON1, IDC_BUTTON2, IDC_
foreach
的示例:
如果您想更改原始元素,可以在type和name之间加上(&D)
< > >(类型和名称:集合){/ /您的代码} < /代码> < p>您已经标记了这个VisualC++,所以我假设您使用的是MFC。如果您使用的是Qt或wxWidgets或其他东西,答案会有所不同 如果您已经在一个容器中设置了控件ID,并且要为每个控件打开该容器,则:
UINT Controls[] = { IDC_BUTTON1, IDC_BUTTON2, IDC_BUTTON3, IDC_BUTTON4, IDC_BUTTON5 };
for (UINT c : Controls)
{
CWnd *b = GetDlgItem(c);
if (b)
b->EnableWindow(FALSE);
}
但是,如果您没有这样的控件容器,但仍希望迭代所有控件,则:
CWnd *c = GetWindow(GW_CHILD);
while (c)
{
c->EnableWindow(FALSE);
c = c->GetNextWindow(GW_HWNDNEXT);
}
我建议使用第一个选项,因为这样您就可以指定要修改哪些控件。如果您只需要按钮,则第二个选项将很棘手。您使用的是什么框架?MFC?如何转换FACH或如何使按钮在C++中工作?一个是微不足道的,一个不是。我想转换C++的Frach循环。
UINT Controls[] = { IDC_BUTTON1, IDC_BUTTON2, IDC_BUTTON3, IDC_BUTTON4, IDC_BUTTON5 };
for (UINT c : Controls)
{
CWnd *b = GetDlgItem(c);
if (b)
b->EnableWindow(FALSE);
}
CWnd *c = GetWindow(GW_CHILD);
while (c)
{
c->EnableWindow(FALSE);
c = c->GetNextWindow(GW_HWNDNEXT);
}