콤보박스는 리스트박스와 비슷하게 사용한다.
접두어만 살짝 다르다.
접두어 CBS_ 또는 CB_ 를 붙인다.
<스크롤바>
스크롤바는 좀더 복잡한 컨트롤 이다.
수치로 정확한 값보다는 대충의 값을 신속하게 선택해야할때 스크롤바가 적합하다.
윈도우의 스크롤 상태를 관리하기 위해 사용하기 도 한다.
스크롤바는 scrollbar윈도우 클래스로 생성하고 수평스크롤 바일 경우 SBS_HORZ 스타일을 수직스크롤바일 경우 SBS_VERT스타일을 지정한다.
스크롤바는 범위와 현재 위치값을 가지는데 다음 두 함수들로 이 값들을 지정한다.
SetScrollRange(hWnd, nBar, nMinPos, nMaxPos, bRedDraw);
SetScrollPos(hWnd, nBar, nPos, bRedraw);
스크롤바는 부모윈도우로 통지 메시지를 보낼때 WM_COMMAND로 보내지 않고,
WM_FSCROLL(수평일 경우), WM_VSCROLL(수직일 경우) 의 별도의 메시지를 보낸다.
사건의 발생 뿐만아니라스크롤 상태에 대한 추가 정보도 같이 보내야 하기 때문이다.
인수 | 설명 |
LOWORD(wParam) | 스크롤바 내의 어디를 눌렀는가 |
HIWORD(wParam) | 현재위치 |
lParam | 스크롤바의 윈도우 핸들 |
LOWORD(wParam) 메시지 종류
값 | 설명 |
SB_LINELEFT(또는 SB_LINEUP) | 사용자가 왼쪽누름, 왼쪽으로 한단위 스크롤 시킨다. |
SB_LINERIGHT(또는 SB_LINEDOWN) | 사용자가 오른쪾 화살표를 누름, 오른쪽으로 한단위 스크롤 |
SB_PAGELEFT(SB_PAGEUP) | 사용자가 왼쪽 몸통 부분을 눌렀다, 한페이지 왼쪽으로 |
SB_PAGERIGHT(SB_PAGEDOWN) | 사용자가 오른쪽 몸통 부분을 눌렀다. 한페이지 오른쪽스크롤 |
SB_THUMBPOSITION | 스크롤박스를 드래그한 후 마우스 버튼을 놓았다. |
SB_THUMBTRACK | 스크롤박스를 드래그 하고 있는 중이다. |
static
스태틱은 다른컨트롤에 비해 비교적 간단한 컨트롤이다.
오로지 문자열만 보여주는 기능이다.
주로 컨트롤의 용도를 설명하는 용도로 쓰인다.
스태틱의 경우 실행중에 부모윈도우로 통지 메시지를 보낼 필요가 없기 때문에 ID를 -1로 지정한다.
여러개의 스태틱이 있을 경우 모두 -1을 사용해도 상관없다. ID -1은 ID를 주지않는다는 뜻이다.
TextOut으로 출력한 문자열은 그냥 문자열 일 뿐이므로 언제든지 지워질 수 있고, WM_PAINT에서 계속 복구해야한다.
'WinAPI' 카테고리의 다른 글
[WINAPI]엑셀러레이터 (0) | 2022.01.16 |
---|---|
[WinAPI]MDI(Multiple Document INterface) (0) | 2022.01.03 |
[WinAPI]메타파일 (0) | 2022.01.03 |
[WINAPI]컨트롤2(라디오 버튼, 에디트, 리스트박스) (0) | 2021.12.30 |
[WINAPI]컨트롤1(버튼, 체크박스) (0) | 2021.12.30 |