다이얼로그(대화식 상자)에 이벤트를 주는 방법은 참 쉽다.
(' ' 요런식..
하지만 다르게 해보면 어떨까... 그래서 어떻게 하면 컨트롤에 이벤트를 줄 수 있을까.. 하면서 찾은것이 MESSAGE_MAP에 NOTIFY 메시지를 등록하는 것.
ON_NOTIFY( wwNotifyCode, id, memberFxn)
id가 바로 해당 controller
읽어보면 아시겠지만 첫번째 전달인자는 메시지 구분자.
Notifications...
예 )
(' ' 요런식..
하지만 다르게 해보면 어떨까... 그래서 어떻게 하면 컨트롤에 이벤트를 줄 수 있을까.. 하면서 찾은것이 MESSAGE_MAP에 NOTIFY 메시지를 등록하는 것.
ON_NOTIFY( wwNotifyCode, id, memberFxn)
id가 바로 해당 controller
- wNotifyCode
The code for the notification message to be handled, such as LVN_KEYDOWN.
- id
The child identifier of the control for which the notification is sent.
- memberFxn
The member function to be called when this notification is sent.
읽어보면 아시겠지만 첫번째 전달인자는 메시지 구분자.
Notifications...
NM_CLICK
User clicked left mouse button in the control
NM_DBLCLK
User double-clicked left mouse button in the control
NM_RCLICK
User clicked right mouse button in the control
NM_RDBLCLK
User double-clicked right mouse button in the control
NM_RETURN
User pressed the ENTER key while control has input focus
NM_SETFOCUS
Control has been given input focus
NM_KILLFOCUS
Control has lost input focus
NM_OUTOFMEMORY
Control could not complete an operation because there was not enough memory available예 )
/*메시지 맵에 메시지 등록*/ BEGIN_MESSAGE_MAP(CsunClientDlg, CDialog) ON_NOTIFY(NM_DBLCLK, IDC_BUDDY_LIST, doubleClickedTree) END_MESSAGE_MAP() /* 등록함수 정의*/ /* 이 코드는 TreeCtrl에 이벤트를 주기위한 코드 */ void CsunClientDlg::doubleClickedTree(NMHDR* pNmhdr, LRESULT* pResult) { HTREEITEM hItem = m_Tree.GetSelectedItem(); if(m_Tree.GetChildItem(hItem) == NULL) { ::MessageBox(NULL, "D", m_Tree.GetItemText(hItem), MB_OK); } }
요런거..
'프로그래밍 > MFC' 카테고리의 다른 글
[MFC] 포인터 해제? (0) | 2011.11.14 |
---|---|
[MFC Dialog] PreTranslateMessage (0) | 2011.10.27 |
[MFC] SendMessage (4) | 2011.10.27 |
[MFC Dialog] OnKeyDown message (0) | 2011.10.27 |
[MFC Dialog 메신져] TreeCtrl 탐색 (0) | 2011.10.18 |