Мастер участка
Группа: Участник
Сообщений: 575
|
1. Самый надёжный способ:
В верхнем правом углу Вашей формы есть 3 (три) маленьких кнопочки. Переместите курсор мышки на ту из них, на которой нарисован крестик (х) и нажмите правую кнопку мышки (подробнее о манипуляторах типа "МЫШЬ" можно почитать например здесь:
[URL=http://lib.csu.ru/DL/bases/prg/frolov/books/bsp/v10/ch6.htm)]
http://www.minnet.ru/index.php?showtopic=1...aded&show=&st=&
http://lib.csu.ru/DL/bases/prg/frolov/book.../ch6.htm)[/URL].
Надёжность остальных способов зависит от расположения так называемых мозгов (если они там на чём сидят — дальше можно не читать) и отсутствия кривизны рук (это заболевание в принципе излечимо, но для этого требуются огромные усилия лечящего персонала и, главное, желание больного).
2. Можно вызвать метод дочерней формы Close():
3. Можно воспользоваться свойствами главной формы ActiveMDIChild или MDIChildren и MDIChildCount.
CODE |
MainMDIForm->ActiveMDIChild->Close();
|
Это если закрываемая Вами форма является активной.
Если она не активна тада напр так:
CODE |
for (int k = 0; k < MainMDIForm->MDIChildCount; k++)
{
if (MainMDIForm->MDIChildren[k] == ChildForm)
//Здесь, по большому счёту, выбор способа определения соответствия остаётся за Вами. В данном случае по указателю...
{
MainMDIForm->MDIChildren[k]->Close();
break;
}
}
|
Только это все не даст никакого результата, если в событии дочерней формы OnClose() Вы не пропишете:
Есть ещё несколько способов, но они либо имеют побочные эффекты (Reset или Power), либо потребуют от Вас мастерства хирурга при работе с инструментами Win API.
Отредактировано Doga — 25/09/2005, 16:32
|