문법적으로 말하자면 C/C++ 매크로이고, 이렇게 쓰인 구조는 메시지 맵이라고 부릅니다.
보니까 비주얼 C++인데, 비주얼 C++이나 C++빌더나 거의 유사한 메시지 맵 방식을 사용합니다.
다만 두 개발툴은 각자 전처리후 만들어져야 하는 소스가 다를 수밖에 없기 때문에 해석되는 결과는 좀 다릅니다.
C++빌더에 대한 내용입니다만 메시지 맵이라는 방식 자체를 이해하는 데에는 아래 글들을 참고하실만 할 겁니다.
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=43
http://cbuilder.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_tip&no=104
그리고, 비주얼 C++이 분명히 C++빌더보다 많이 사용되기합니다만, 두 개발툴이 할 수 있는 일이나 성능은 거의 똑같은 반면, 비주얼 C++은 C++빌더보다 배우기도 몇배나 더 어렵고, 배운 후 실무에서도 몇배로 더 복잡하고 시간도 많이 걸립니다. 누가 강요한다든지 하는 특정한 상황의 제약을 받아서 비주얼 C++을 공부하시는 게 아니라면 C++빌더로 바꿔보시는 게 무병장수, 해피 라이프에 도움이 될 겁니다.
Struct 님이 쓰신 글 :
: IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
:
: BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
: ON_COMMAND_EX(CG_ID_VIEW_COLORDLGBAR, OnBarCheck)
: ON_UPDATE_COMMAND_UI(CG_ID_VIEW_COLORDLGBAR, OnUpdateControlBarMenu)
: //{{AFX_MSG_MAP(CMainFrame)
: ON_WM_CREATE()
: ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, OnUpdateEditUndo)
: ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, OnUpdateEditRedo)
: ON_COMMAND(ID_EDIT_UNDO, OnEditUndo)
: ON_COMMAND(ID_EDIT_REDO, OnEditRedo)
: ON_COMMAND(ID_FILE_NEW, OnFileNew)
: //}}AFX_MSG_MAP
: ON_COMMAND_RANGE(ID_TOOLS_FREEDRAW, ID_TOOLS_SPRAY, OnToolBarCommandCheck)
: ON_UPDATE_COMMAND_UI_RANGE(ID_TOOLS_FREEDRAW, ID_TOOLS_SPRAY, OnUpdateToolBarCheck)
: END_MESSAGE_MAP()
:
:
: 여기서 대문자로 구성되있는것은 머라고 불리는지 어떨때 대문자로 쓰이는지좀 알려주세여