티스토리 뷰

Win32(API)

[win32 api] EditBox, ListBoc Control

열혈허슬러 상추님 2018.03.17 17:52

[win32 api] EditBox, ListBoc Control

에디트 박스 컨트롤 (Editbox Control)

에디트 박스 컨트롤 (Editbox Control)

다이얼로그에 있는 에디트 박스 컨트롤에 사용자가 입력을 해주거나 변화를 준다면,
에디트 박스는 통보메세지를 wParam(word paramiter)의 HIWORD(상위 2byte)에 EN_CHANGE 메세지를 보내준다.

에디트 박스가 변할 때, 처리를 해주고 싶다면 switch문이나 if문을 이용해서 처리해준다. 스위치 문을  사용해서 처리해주는 것이 일반적인데 학습을 위해 if문을 사용해서 처리해준 모습이다.

GetDlgItemText() 함수를 사용해서 buf에 해당 에디트 박스에 있는 텍스트를 읽어올 수 있다.

SetDlgItemText() 함수를 사용해서 해당 에디트 박스에 buf에 있는 텍스트를 출력할 수 있다.

리스트박스 컨트롤 (ListBox Control)

리스트박스 컨트롤 (ListBox Control)

리스트박스 컨트롤의 프로시저에서

WM_COMMAND 는 메뉴나 단축키가 눌러졌을 때, 또는 자식의 통보 메세지를 받게되면 들어오는 iMsg(메세지)정보이다.

WM_COMMAND 메세지가 발생하고, 리스트박스에서 사용자가 선택을 하게된다면 LBN_SELCHANGE가 발생하게된다.

이때 LBN_SELCHANGE메세지는 워드파라미터의 상위바이트에서 확인할 수 있다.

SendMessage() : 센드메세지는 해당 메세지를 바로 디스패치시킬 수 있는 함수로, 그결과 그 즉시 보장한다. LB_GETCURSEL은 리스트박스에서 사용자가 선택한 제로기반 인덱스를 반환한다.

댓글
댓글쓰기 폼