'이벤트핸들링'에 해당되는 글 1건

  1. 2007.05.17 -작성중- 함수포인터를 이용한 이벤트 핸들링 처리방법 예제
프로그래밍/C/C++2007.05.17 18:06

 #include <stdio.h>
#include <tchar.h>

#include <iostream>
using namespace std;

#include <map>


enum EVENT_TYPE {
 EVENT_MOUSE_DOWN,
 EVENT_MOUSE_UP
};

typedef struct {
 int x, y;
} EventArgs;

typedef void (*fnpoint)(EventArgs);


class Button
{
public:
 void AddEvent(EVENT_TYPE eventType, fnpoint fn)
 {
  m_mapEvent[eventType] = fn;
 }

 void FireEvent(EVENT_TYPE eventType, EventArgs args)
 {
  m_mapEvent[eventType](args);
 }

 void Click()
 {
  EventArgs args;
  args.x = 0;
  args.y = 50;

  FireEvent(EVENT_MOUSE_DOWN, args);
 }

private:
 map<EVENT_TYPE, fnpoint> m_mapEvent;

};


void OnMouseDown(EventArgs args)
{
 printf("button clicked! (%d, %d)\n", args.x, args.y);
}

int _tmain(int argc, _TCHAR* argv[])
{
 Button button;

 button.AddEvent(EVENT_MOUSE_DOWN, OnMouseDown);

 button.Click();

 return 0;
}


Posted by 시난

댓글을 달아 주세요