일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Callback
- File
- window
- Sync
- Linux
- tcp
- http
- mutex
- GO 언어
- 영화
- json
- windows
- write
- range
- package
- go언어
- go
- 책
- JavaScript
- Close
- c++
- Python
- C
- Golang
- channel
- API
- install
- bitcoin
- 리뷰
- FOR
- Today
- Total
목록WM_SYSCOMMAND (3)
Code Habit
팝업 윈도우를 생성하고 직접 메시지를 이용해 윈도우 크기 변경하고 싶을 때 윈도우 메시지 WM_SYSCOMMAND, SC_SIZE를 활용할 수 있다. WM_LBUTTONDOWN 메시지 함수에서 다음과 같이 처리하면 된다. SendMessage(WM_SYSCOMMAND, SC_SIZE | HT_BOTTOMRIGHT); HT_BOTTOMRIGHT는 마우스 포인터가 해당 윈도우의 어디 부분에 위치해 있는지를 정해주는 값이므로 마우스 포인터가 위치하는 경계선 기준에 따라 아래와 같은 값들을 주면 된다. ( 위 예제 코드를 활용하여 실제 마우스 L버튼 클릭 후 드래그 하면 팝업 윈도의 오른하단 경계부분을 클릭 후 resize하는 것마냥 동작한다. ) #defineHT_NOWHERE0// On the screen ..
우리는 보통 윈도우를 이동시킬때 보통 캡션 영역을 마우스로 클릭하여 드래그한다. 만약 캡션바 없는 윈도우를 이동시키고 싶다면 다음과 같이 처리하면 된다. WM_LBUTTONDOWN 메시지 함수에서 SendMessage( hWnd, WM_SYSCOMMAND, SC_MOVE | 0x0002, NULL );
시스템 메뉴에 있는 메뉴 항목을 선택하면 이 메시지가 전달된다. 시스템 메뉴를 직접 선택하는 동작 외에도 타이틀 바에 있는 최대, 최소, 닫기 버튼 등의 명령들도 이 메시지를 발생시킨다. 시스템 메뉴에 있는 명령들은 윈도우를 관리하기 위한 기본적인 명령이므로 응용 프로그램은 이 메시지를 직접 처리하지 않고 보통 DefWindowProc으로 그냥 보내 준다. DefWindowProc은 wParam값에 따라 시스템에 미리 정의되어 있는 동작을 수행한다. 예를 들어 SC_MINIMIZE 시스템 명령이 전달되었으면 윈도우를 최소화하고 SC_CLOSE 명령이 전달되었으면 윈도우를 닫는다. 응용 프로그램이 직접 이 시스템 명령을 프로그래밍 하고 싶다면 이 메시지를 처리하며 처리한 시스템 명령은 DefWindowPr..