수안이의 컴퓨터 연구실

  • Mainpage
  • About Me
  • Tags
  • Metapage
  • Notice
  • Location
  • Keywords
  • Guestbook
  • Admin
  • Write an Article
  • Total | 1693802
  • Today | 153
  • Yesterday | 588

Programming/MFC2007/03/01 18:41

일반적인 윈도우 소멸 순서

원본 : http://www.debuglab.com/knowledge/windowdect.html

1.요약

초보자들이 이해하기 어려워 하는 윈도우 소멸 순서에 대해서 알아 봅니다.


2.본문

MFC framework에서, 사용자가 frame 윈도를 닫게되면, 윈도는 기본적으로 OnClose 핸들을 call 합니다. 그리고 OnClose 내부에서는 DestroyWindow를 호출하죠. 가장 마지막으로 호출되는 함수는 OnNcDestroy이다. 이 함수는 약간의 정리를 하는 함수로 윈도를 정리하기 위하여 기본적으로 불려지는 함수입니다. OnNcDestroy함수 내부에서는 PostNcDestroy함수를 호출하겠죠.

 afx_msg OnClose( ) 
Framework은 CWnd나 application을 종료 시키기 위해서 이 함수를 마치 시그날 처럼 호출한다. 내부의 기본적인 구현은 DestroyWindow를 호출한다.


 virtual BOOL DestroyWindow( ) 
Destroy Window 함수는
1) CWnd내부에 있는 윈도를 destroy 한다.
2) 또한 윈도를 해제하고 입력 포커스를 제거하기 위한 적절한 message를 윈도에게 보낸다.
3) 윈도의 메뉴 제거
4) application queue를 비운다.
5) timer를 제거
6) clipboard의 소유주 제거
7) Clipboard-viewer chain을 끊는다. ( CWnd가 viewer chain의 맨 위에 있을 경우 )
8) WM_DESTROY( OnDestroy )와 WM_NCDESTROY( OnNcDestroy ) 메시지를 위도에게 보낸다.

하지만 아직 CWnd 객체는 destroy하지 않는다.

이 함수를 오버라이드 하더라도 이 함수를 호출하지 않아도 됩니다. ( 왜냐면 시스템이 알아서 호출을 해주니까..) 하지만, 굳이 하고 싶다면 해도 호출해도 됩니다. 그리고 만약 내부에 자식 윈도가 있더라도 걱정하지 않으셔도 됩니다. 왜냐하면, 자식들을 먼저 destroy한 다음에 자신이 죽기 때문이죠.


 afx_msg void OnDestroy() 
Framework이 CWnd에게 현재 CWnd가 소멸되고 있는 중이라고 알려 주기위하여 호출 합니다. OnDestroy함수는 CWnd 함수가 화면에서 사라진 다음에 호출됩니다.

OnDestroy is called first for the CWnd being destroyed, then for the child windows of CWnd as they are destroyed. It can be assumed that all child windows still exist while OnDestroy runs.


 afx_msg void OnNcDestroy() 
Client가 아닌 영역이 destroy될 때 Frame work에 의하여 불려지는 함수입니다.. 윈도가 소멸될때 마지막으로 불려지는 함수이기도 하죠. 기본적으로 약간의 정리를 한후, PostNcDestroy 함수를 호출하는데, 대게는 이 함수를 오버라이드 하지 않지만 만약 하게되면 내부에서 상위 클래스의 OnNcDestroy를 호출해야만 합니다. 그렇지 않으면 내부적으로 윈도를 위해 할당된 메모리가 free되지 못하게 되죠.


 virtual void PostNcDestroy() 
윈도가 소멸된 후 OnNcDestroy함수에 의하여 불려지는 기본함수입니다. 사용자들이 상속받아 만든 클래스의 정리를 위한 코드를 삽입하면 되죠. ( ex. delete this; )



- 2001.08.13 Smile Seo -
"MFC" 카테고리의 다른 글
  • DirectDraw에서 256색 Bitmap 간편히 사용하기 (0)2007/03/01
  • 메모리 DC 사용하기 (0)2007/03/01
  • 일반적인 윈도우 소멸 순서 (0)2007/03/01
  • 프로그램내에서 한/영 전환하기 (0)2007/03/01
  • Resource ID 이름 짓는 방법 (0)2007/03/01
2007/03/01 18:41 2007/03/01 18:41
Posted by webdizen
Tags 윈도우 소멸
No Trackback No Comment

Trackback URL : http://www.webdizen.net/blog/trackback/2652

Leave your greetings.

[로그인][오픈아이디란?]

«Prev  1 ... 596 597 598 599 600 601 602 603 604 ... 3009  Next»

RSS HanRSS
Blog Image
webdizen
이곳은 컴퓨터에 대해 연구하고, 공유하고, 소통하기 위한 연구실입니다. 개인적으로는 OLAP, Data Mining, Semantic Web, Data Modeling에 대해서 연구하고 있습니다.

Categories

전체 (3009)
Webdizen (141)
Life (6)
Diary (16)
Blog (9)
IDEA (2)
Travel (10)
Book (16)
Photo (7)
Movie (8)
Music (14)
Leisure Sports (10)
Funny (6)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Installation (5)
Kernel (10)
System (34)
Develop (22)
X-Window (0)
Applicaton (31)
Security (4)
Framework (2)
Hadoop (2)
Programming (804)
Algorithm & Data Structure (1)
Assembly (38)
UNIX/Linux C (95)
C++ (128)
STL (4)
Java (38)
Win32 API (92)
ATL/COM (44)
MFC (151)
.NET (26)
WCF/WPF (4)
C# (28)
Network Programming (17)
Database Programming (12)
OpenGL / DirectX (13)
Multimedia Programming (0)
Game Programming (21)
Parallel Distributed Progra... (0)
Reverse Engineering (0)
Debugging (9)
Python (1)
Ruby (1)
Ruby on Rails (1)
QT (4)
GTK (0)
JSP (0)
PHP (6)
ASP.NET (6)
ASP (2)
Development (28)
Useful Library (2)
Data Modeling (0)
Database (105)
Oracle (4)
MSSQL (41)
MySQL (2)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (79)
DHTML (4)
XHTML (1)
Javascript (1)
CSS (1)
AJAX (9)
XML (11)
Flex (1)
Silverlight (3)
Security (91)
DoS (1)
Kernel (10)
Scanning (3)
Sniffing (0)
Spoofing (4)
Overflow (28)
Web (11)
Shell (10)
Format String (14)
Window (2)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
Hadoop (0)

Notice

  • 메타 블로그 사이트에 등록
  • 새해 맞이 블로그의 변화
  • 블로그 명칭 변경
  • 도메인(www.webdizen.net) 구...
  • TEXTCUBE 1.6.1로 업그레이드...

Tags

  • 패킷 분석
  • XSL
  • XMLParser
  • 멀티미디어
  • 목표
  • 후버댐
  • 마드리드
  • Project
  • IDA
  • 보안 솔루션
  • Database Server
  • 춘천캠퍼스
  • 웹 응용
  • 진로 포도주
  • DFS
  • 법과대학
  • HyperBac
  • GDB
  • Naver
  • 트랜잭션

Recent Articles

  • 트위터(Twitter)의 시작!.
  • 청년 리더의 조건.
  • 애플의 타블렛 PC - 아이패드....
  • 미래의 인터페이스 - 육감 기....
  • 기초발성법 동영상 강좌.

Recent Comments

  • 학교 과제물중 쓰레드에 대하....
    장진혁 03/17
  • 관리자만 볼 수 있는 댓글입....
    비밀방문자 03/12
  • 상대방의 이야기를 열심히 경....
    DoNuts 03/03
  • Lots of students know techn....
    Bobbi35Shannon 02/25
  • 좋은글 잘 보고 갑니다..
    Und_hacker 01/08

Recent Trackbacks

  • printf,scanf를 이용한 형식....
    yundream의 프로그래밍 이야기 03/10
  • 파일 열기/저장하기 CFileDialog.
    은마군의 나태블록 2009
  • World IT Show 2008.
    상우 :: Oranzie's BLOG 2008
  • cvs서버 설치하기.
    3인3색 2008
  • 속속 공개되는 Google Chart....
    PHP와 Web 2.0 2007

Archive

  • 2010/02 (1)
  • 2010/01 (6)
  • 2009/12 (5)
  • 2009/09 (3)
  • 2009/08 (1)

Calendar

«   2010/03   »
일 월 화 수 목 금 토
  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 31      

Bookmarks

    • Administration
      • IIS.NET
      • NTFAQ
      • OS의 모든 것
      • 리눅스포털
    • Database
      • SQL Server Central
      • SQL Team
    • Development
      • .NET Heaven
      • ASP Alliance
      • ASP.NET 2.0
      • Bullog.net
      • C# Corner
      • C++ (C PlusPlus.com)
      • C++ Reference
      • CodeGuru
      • CodePlex
      • DebugLab
      • Dev Articles
      • Devpia
      • DotNet Junkies
      • DotNet Zone
      • Driver Online
      • GOSU.NET
      • HOONS 닷넷
      • Joinc 팀블로그
      • KOSR
      • MSDN Home Page
      • OSR Online
      • Sky.ph - 개발자 커뮤니...
      • TAEYO.NET
      • The Code Project
      • WindowsClient.net
      • 김상욱의 개발자 Side
      • 조인시 위키
    • Human Networks
      • belief21c's e-space
      • I think I can
      • Invisible Rover's Blog :D
      • Rodman®
      • ■ Feel So Good~! ■
      • 까만 나비
      • 나를 가꾸는 시간.
      • 나만의 즐거움~~!
      • 단녕
      • 상우 :: Oranzie's BLOG
    • Information Technology
      • Microsoft TechNet
      • 지디넷코리아 - 글로벌...
    • Security
      • FoundStone
      • milw0rm
      • NewOrder
      • OpenRCE
      • Phrack.org
      • Reverse Engineering b1...
      • Reverse Engineering Team
      • RootKit
      • SecurityFocus
      • SecurityXploded by Nag...
      • Wow Hacker
      • Zone-H
Textcube
Louice Studio Inc.
Powered by Textcube. Original designed by Tistory.