컴퓨터 공부/MFC 프로그래밍

[5월 19일 1교시] 컨트롤

려리군 2009. 5. 19. 10:02

버튼 컨트롤

디폴트 버튼 : 엔터키가 눌렀을 때 반응하는 버튼

multi line

owner draw : 그림을 그릴 수 있는 버튼.

이벤트 : BN_CLICKED, BN_DOUCLECLICKED


체크 버튼 

목록을 선택하고 해제한다. 

스타일 : 3가지 상태 체크박스(BS_3STATE,int), 2가지 상태 체크박스(BOOL)


라디오버튼


여러개 목록 중 하나의 아이템을 선택한다.

몇 개의 라디오 버튼을 그룹화한다.

 - 각 라디오 버튼에 대한 ID를 정한다.

 - 적절한 탭 순서를 정한다.

 - 그룹의 첫번째 아이템에 "그룹" 속성을 정한다. (그룹의 첫번째 라디오 버튼을 TRUE)

다이얼로그 데이터 교환 : int


라디오 버튼을 이용한 그림 그리기 예제

실습10

실습10.zip



리스트박스 컨트롤

컨트롤에서 아이템을 선택한다.

이벤트

LBN_DBLCLK

LBN_SELCHANGE, LBN_SELCANCEL : 선택이 변경되었을 때, 취소되었을 때

LBN_SETFOCUS, LBN_KILLFOCUS


콤보박스 컨트롤

에디트 + 리스트박스 컨트롤
스타일 : Simple, Dropdown, Drop List
이벤트 
CBN_DROPDOWN : 리스트 박스가 써질 때
CBN_SELCHANGE : 리스트 박스가 선택될 때

함수들
int CListBox::AddString(LPCTSTR lpszItem);
리스트 박스에 문자열을 추가한다.
리턴 : 리스트 박스에서 문자열에 대한 0으로 시작하는 인덱스 값.
lpszItem : 추가될 문자열의 포인터.

int CListBox::GetText(int nIndex, LPTSTR lpszBuffer) const;
void CListBox::GetText(int nIndex, CString& rString) const;
리스트 박스에서 문자열을 얻는다.
리턴 : 널문자를 제외한 문자열의 바이트 크기. 못찾았을 경우 LB_ERR
nIndex : 얻고자 하는 문자열의 0으로 시작하는 인덱스
lpszBuffer : 문자열을 얻을 버퍼의 포인터. 버퍼는 충분한 크기를 가져야 한다. 
GetTextLen을 호출함으로서 문자열의 크기를 결정할 수 있다.
rString : CString 객체에 대한 참조

int CListBox::GetCurSel( ) const;
하나만 선택할 수 있는 리스트박스에서 현재 선택된 아이템의 0으로 시작하는 인덱스를 얻는다. 
리턴 : 현재 선택된 아이템의 0 기반의 인덱스. 선택된 아이템이 없거나 다중 선택 리스트이면 LB_ERR을 리턴한다.

int CComboBox::AddString(LPCTSTR lpszString);
콤보 박스의 리스트 박스에 문자열을 추가한다.
리턴 : 리스트 박스의 문자열에 대한 0으로 시작하는 인덱스. 오류 발생시 CB_ERR, 새로운 문자열을 저장할 버퍼 크기가 부족하면 CB_ERRSPACE
lpszString : 추가될 문자열의 포인터

int GetLBText(int nIndex, LPTSTR lpszText) const;
void GetLBText(int nIndex, CString& rString) const;
리턴 : 널 종료 문자를 제외한 문자열의 바이트 수. nIndex가 유효하지 않으면 CB_ERR
nIndex : 복사될 리스트 박스 문자열의 0으로 시작하는 인덱스 값
lpszText : 문자열을 받기 위한 버퍼의 포인터. 버퍼는 문자열과 널 종료 문자를 위해 충분한 공간이 있어야 한다.
rString : CString에 대한 참조

int CComboBox::GetCurSel() const;
콤보 박스에서 어떤 아이템이 선택되었는 지 알아낸다.
리턴 : 콤보박스의 리스트 박스에서 선택된 아이템의 0으로 시작하는 인덱스값. 선택되지 않았으면 LB_ERR



실습10.zip
0.1MB