6. Controls Life Cycle
1. 모든 컨트롤들은 힙에 생성 해야 한다.
Button *pButton= new Button();
Button->Construct(Rectangle(10, 100, 460, 60));
pButton->SetText(L”Devmento”);
pButton->SetActionId(10);
pButton->AddActionEventListener(*this);
7. Controls Life Cycle
2. 컨트롤들은 프로그램이 종료 될 때 자동적으로 해체 된다.
Button *pButton= new Button();
pButton->Construct(Rectangle(10, 100, 460, 60));
pButton->SetText(L”Devmento”);
pButton->SetActionId(10);
pButton->AddActionEventListener(*this);
AddControl(*pButton);
delete pButton;
명시적으로 해체 NO!
8. Controls Life Cycle
3.명시적으로 메모리 해체 해야 하는 컨트롤
MessageBox ContextMenu OptionMenu Popup
9. Controls Life Cycle
Example
result Devmento ::OnInitializing(void) { result Devmento::OnTerminating(void) {
result r = E_SUCCESS; result r = E_SUCCESS;
delete pPopup;
__pPopup = new Popup(); return r;
Dimension dim(300, 400); }
__pPopup->Construct(true, dim);
__pPopup->SetTitleText(L"Popup Test");
Button* pBtnClose = new Button();
pBtnClose->Construct(Rectangle(10, 10, 250, 60),
L"Close");
pBtnClose->SetActionId(ID_BUTTON_CLOSE_POPUP);
pBtnClose->AddActionEventListener(*this);
__pPopup->AddControl(*pBtnClose);
}