Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- API
- FOR
- windows
- JavaScript
- range
- 리뷰
- go
- window
- 영화
- bitcoin
- Python
- mutex
- GO 언어
- go언어
- channel
- Callback
- http
- File
- write
- tcp
- install
- C
- Golang
- 책
- package
- Linux
- Close
- Sync
- json
- c++
Archives
- Today
- Total
목록DestroyWindow (2)
Code Habit
윈도우 파괴 ( WM_DESTROY )
윈도우가 파괴(종료)되기 전에 WM_DESTROY라는 메시지가 전달되는데 이 메시지에 대한 핸들러가 OnDestroy함수이다. 즉 WM_DESTROY 메시지가 해당 윈도우에 전달되면 OnDestroy 함수가 호출된다는 뜻이다. OnDestroy 함수가 호출되어 수행되는 시점에는 아직 윈도우가 파괴되기 전이기 때문에 해당 윈도우나 해당 윈도우에서 생성한 자식 윈도우 또는 컨트롤을 사용할 수 있다. 따라서 윈도우가 파괴되기 직전에 처리해야 할 작업이 있다면 이 함수에서 작업하면 된다. WM_DESTROY 메시지를 전달할 때 보통 윈도우 객체의 DestroyWindow() 함수를 호출 하면 된다. DestroyWindow 함수는 다음과 같은 순서로 동작한다. 파괴되는 윈도우에게 WM_DESTROY, WM_NC..
카테고리 없음
2020. 6. 11. 06:56
클래스 소멸자에서 자식 컨트롤들을 DestroyWindow호출하면 안되는 이유 !
보통 윈도우 UI를 구성할 때 자식 컨트롤들을 멤버변수로 갖고 OnCreate( or OnInitDialog )에서 자식 컨트롤들을 생성하는데 이렇게 만들어진 자식 컨트롤들을 혹시라도 소멸자에서 DestroyWindow하는 우를 범해서는 안된다. 실제 소멸자에서 자식 컨트롤들을 DestoryWindow하면 크래쉬가 발생하게 되는데, 이는 부모가 소멸자를 호출하는 시점에 이미 자식 컨트롤(윈도우)들은 파괴되어 있기 때문이다. 이럴 경우 부모 클래스에서 Destroy하는 함수를 만들어 명시적으로 안전하게 자식 컨트롤들을 해제하는 것이 좋다.
카테고리 없음
2020. 1. 22. 20:04