VS2010 MFC派生类CDialogBar要删除全部控件重新根据输入生成
时间: 2023-08-08 14:06:42 浏览: 152
如何完整删除控件
如果您想要删除CDialogBar中所有的控件并重新生成,可以按照以下步骤进行操作:
1. 打开您的CDialogBar的头文件,找到该类的成员变量和函数。将成员变量中的控件指针设置为NULL,并将函数中的控件对象销毁。
2. 在您的CDialogBar的 .cpp 文件中,编写一个函数来删除所有的控件。您可以使用CWnd::GetDlgItem函数来获取每个控件的指针,并将其销毁。
3. 创建一个新的函数来根据输入生成新的控件。您可以使用CWnd::Create函数来创建控件,并将其添加到您的CDialogBar中。
以下是一个示例函数,用于从CDialogBar中删除所有控件并重新生成:
```
void CMyDialogBar::ResetControls()
{
// 删除所有控件
CWnd* pWndChild = GetWindow(GW_CHILD);
while (pWndChild)
{
CWnd* pWndNext = pWndChild->GetNextWindow(GW_HWNDNEXT);
if (pWndChild->IsKindOf(RUNTIME_CLASS(CButton)) ||
pWndChild->IsKindOf(RUNTIME_CLASS(CEdit)) ||
pWndChild->IsKindOf(RUNTIME_CLASS(CComboBox)) ||
pWndChild->IsKindOf(RUNTIME_CLASS(CListBox)))
{
delete pWndChild;
}
pWndChild = pWndNext;
}
// 重新生成控件
// TODO: 根据输入生成控件
}
```
阅读全文