반응형
에이 젠장...
OnCommand에서 아무리 확인해봐도... 직접 동적으로 생성해준 CListBox에 도무지 메세지가 Notify 되지 않았다.
왜 그렇지...;;;
이리 찾고 저리 찾고... 계속 안나오다가 결국 찾았당.
생성시...
m_ctlRecItem.Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY, CRect(nCurX, nCurY, nCurX + nRecItemWidth + nPadding, nCurY + nrecItemHeight), this, IDC_RECITEM_ID);
요런식으로 했어야 했다. LBS_NOTIFY를 넣어주지 않으면 젠장 안온다. 오직 포커스를 얻었다, 잃었다만 올 뿐...
휴... 젠장
-참고-
OnCommand에서 아무리 확인해봐도... 직접 동적으로 생성해준 CListBox에 도무지 메세지가 Notify 되지 않았다.
왜 그렇지...;;;
이리 찾고 저리 찾고... 계속 안나오다가 결국 찾았당.
생성시...
m_ctlRecItem.Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|LBS_NOTIFY, CRect(nCurX, nCurY, nCurX + nRecItemWidth + nPadding, nCurY + nrecItemHeight), this, IDC_RECITEM_ID);
요런식으로 했어야 했다. LBS_NOTIFY를 넣어주지 않으면 젠장 안온다. 오직 포커스를 얻었다, 잃었다만 올 뿐...
휴... 젠장
-참고-
리스트 박스는 선택가능한 여러개의 항목들을 나열해 놓고 그중 하나(또는 여러개)를 선택하도록 하는 컨트롤이며 여기서 항목이란 주로 문자열이다. "listbox"라는 윈도우 클래스를 사용하며 다음과 같은 여러가지 스타일이 정의되어 있다.
스타일 | 설명 |
LBS_MULTIPLESEL | 여러개의 항목을 선택할 수 있도록 한다. 이 스타일을 적용하지 않으면 디폴트로 하나만 선택할 수 있다. |
LBS_NOTIFY | 사용자가 목록중 하나를 선택했을 때 부모 윈도우로 통지 메시지를 보내도록 한다. |
LBS_SORT | 추가된 항목들을 자동 정렬하도록 한다. |
LBS_OWNERDRAW | 문자열이 아닌 비트맵이나 그림을 넣을 수 있도록 한다. |
LBS_STANDARD | LBS_NOTIFY | LBS_SORT | WS_BORDER |
부모 윈도우로 통지 메시지를 보내는 것이 일반적이므로 LBS_NOTIFY 스타일은 거의 필수적으로 선택하는 것이 좋으며 그외 LBS_MULTIPLESEL이나 LBS_SORT 스타일은 필요할 때 선택하면 된다.
부모 윈도우가 리스트 박스를 조작하고자 할 때는 리스트 박스 메시지를 사용한다.
메시지 | 설명 |
LB_ADDSTRING | 리스트 박스에 항목을 추가한다. lParam으로 추가하고자 하는 문자열의 번지를 넘겨주면 된다. |
LB_DELETESTRING | 항목을 삭제한다. wParam으로 항목의 번호를 넘겨주며 남은 문자열수를 리턴한다. |
LB_GETCURSEL | 현재 선택된 항목의 번호(Index)를 조사해준다. |
LB_GETTEXT | 지정한 항목의 문자열을 읽는다. wParam에 항목 번호, lParam에 문자열 버퍼의 번지를 넘겨주면 버퍼에 문자열을 채워준다. |
LB_GETCOUNT | 항목의 개수를 조사한다. |
LB_SETCURSEL | wParam이 지정한 항목을 선택하도록 한다. |
이 외에도 수많은 메시지들이 있는데 자세한 사항은 레퍼런스를 참고하기 바란다. 이 메시지들은 부모 윈도우가 리스트 박스에게 명령을 내리기 위해 사용하며 반대로 리스트 박스에서 어떤 사건이 발생했을 때 부모 윈도우로 통지 메시지를 보낸다.
메시지 | 설명 |
LBN_DBLCLK | 리스트 박스를 더블클릭하였다. |
LBN_ERRSPACE | 메모리가 부족하다. |
LBN_KILLFOCUS | 키보드 포커스를 잃었다. |
LBN_SELCANCEL | 사용자가 선택을 취소하였다. |
LBN_SELCHANGE | 사용자에 의해 선택이 변경되었다. |
LBN_SETFOCUS | 키보드 포커스를 얻었다. |
반응형
'프로그래밍 > C++' 카테고리의 다른 글
ActiveX 상호 작용을 허용하시겠습니까? 해결방법 - IObjectSafety (0) | 2012.03.28 |
---|---|
신뢰 할 수 있는 사이트에 자동등록하기 (0) | 2012.03.27 |
[C++] CAB 파일 작성 시 유의점 (0) | 2011.10.19 |
[MFC] ActvieX 개발 시 참고..~!!! (0) | 2011.10.18 |
Memory Leak 탐지방법 (0) | 2011.08.19 |
댓글