일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- Linux
- FOR
- Sync
- Callback
- Python
- JavaScript
- c++
- range
- Golang
- Close
- windows
- GO 언어
- 영화
- tcp
- API
- write
- install
- C
- window
- package
- channel
- mutex
- File
- go
- bitcoin
- http
- go언어
- 책
- json
- 리뷰
- 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..