【发布时间】:2017-10-15 08:45:11
【问题描述】:
在OnInitDialog我调用这个方法来创建9个CComboBox下拉列表:
void CChristianLifeMinistryStudentsDlg::CreateSampleConversationVideoCombos()
{
CChristianLifeMinistryStudentEdit* pArrayStudents[9] =
{
&m_editMainStudent1,
&m_editMainStudent2,
&m_editMainStudent3,
&m_editClass1Student1,
&m_editClass1Student2,
&m_editClass1Student3,
&m_editClass2Student1,
&m_editClass2Student2,
&m_editClass2Student3
};
CChristianLifeMinistryStudentEdit* pArrayAssistants[9] =
{
&m_editMainStudent1Assist,
&m_editMainStudent2Assist,
&m_editMainStudent3Assist,
&m_editClass1Student1Assist,
&m_editClass1Student2Assist,
&m_editClass1Student3Assist,
&m_editClass2Student1Assist,
&m_editClass2Student2Assist,
&m_editClass2Student3Assist
};
CString strChairman, strAuxClassCounsellor;
strChairman.LoadString(IDS_STR_MWB_CHAIRMAN);
strAuxClassCounsellor.LoadString(IDS_STR_AUX_CLASS_COUNSELLOR);
for (int i = 0; i < 9; i++)
{
CRect rctStudent, rctAssistant;
pArrayStudents[i]->GetWindowRect(rctStudent);
pArrayAssistants[i]->GetWindowRect(rctAssistant);
ScreenToClient(&rctStudent);
ScreenToClient(&rctAssistant);
CRect rctSampleConversationVideo;
rctSampleConversationVideo.SetRect(rctStudent.TopLeft(), rctAssistant.BottomRight());
m_cbSampleConversationVideo[i].Create(CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP | WS_VISIBLE,
rctSampleConversationVideo, this, IDC_COMBO_OCLM_AYFM_ASSIGN1_MH + i);
m_cbSampleConversationVideo[i].SetFont(GetFont());
m_cbSampleConversationVideo[i].AddString(strChairman);
m_cbSampleConversationVideo[i].AddString(strAuxClassCounsellor);
}
}
我无法解决的是,当对话框关闭时,我是否需要在其中的每一个上调用 DestroyWindow?我似乎没有任何内存泄漏。
【问题讨论】:
-
您的代码不清楚。但一般不会。
DestroyWindow不适用于对话框控件。对话框控件通常不需要特殊清理。 -
感谢您的澄清。
标签: mfc