컴퓨팅/프로그래밍

바다 프로그래밍 기초

에어버스 2010. 11. 17. 18:14
버튼 컨트롤 등록
ID : IDC_BUTTON_OK

헤더파일에 컨트롤을 등록한다.
Osp::Ui::Controls::Button *__pButtonOk;
static const int ID_BUTTON_OK = 101; // 이벤트 처리를 위해 Action ID 로 사용

OnInitializing() 에서
__pButtonOk = static_cast<Button *>(GetControl(L"IDC_BUTTON_OK"));
버트컨트롤 ID를 사용하여, 버튼 컨트롤 변수에 버튼 클래스를 저장하여 instance 생성.
Action ID 와 혼돈 유의 - 컨트롤 변수에는 컨트롤ID 사용.
static_cast<Button *> : 캐스팅 연산자

__pButtonOk->SetActionId(ID_BUTTON_OK);
생성한 버튼 클릭 이벤트 처리를 위해 이벤트 처리기에 전달할 Action ID를 등록.
컨트롤ID와 혼돈 유의 - 이벤트 등록과 이벤트 처리기에서 사용.
모든 컨트롤은 이렇게 Action ID를 등록해야 함.

__pButtonOk->AddActionEventListener(*this);
생성한 버튼 컨트롤을 폼의 이벤트 처리기에 등록
모든 컨트롤은 폼의 이벤트 처리기에 등록해야 함
this : 폼을 가리킴


OnActionPerformed(Control& source, int actionId) - 클릭 이벤트 처리기

switch(actionId)
{
   case ID_BUTTON_OK: // OK 버튼인 경우, ID_BUTTON_OK 라는 Action ID 값을 받음
   {
      AppLog(L"메시지 출력); // 한글은 유니코드로 처리해야 함, Output 창에 출력
   }
   break;
 
   default:
      break;
}

버튼 컨트롤에서 클릭 이벤트 발생하면 Output 창에 메시지 출력한다.