RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Child Window'에 해당되는 글 1
원본 : http://www.debuglab.com/knowledge/childwindow.html

1.요약

아무런 기능도 없는 일반적인 Child Window를 만들어 보도록 하겠습니다.
이런 Window는 모든 Window의 기본이기 때문에 나 자신만의 새로운 Control를 만들 때 유용하게 사용할 수 있습니다.


2.본문

Windows Program에서 Window를 생성하기 위해 사용되는 함수는 Create()입니다. 모든 Window는 이 함수를 통해서 만들어지고, ClassName과 Style에 따라 Windows에서 기본적으로 제공하는 Control(Button, Check, Edit..)이나 Dialog가 만들어 질 수 있습니다.

1) CWnd상속받는 Class를 생성한다.

2) Class Wizard에서 Create()함수를 추가한다.
그러면 다음과 같은 함수가 만들어 진다.

      virtual BOOL Create(LPCTSTR lpszClassName, 

                  LPCTSTR lpszWindowName, DWORD dwStyle, 

                  const RECT& rect, CWnd* pParentWnd, 

                  UINT nID, CCreateContext* pContext) 

함수 정의를 다음과 같이 수정해 준다.

      

      virtual BOOL Create(DWORD dwStyle, const RECT& rect, 

                  CWnd* pParentWnd, UINT nID); 


      BOOL CMyWnd::Create(LPCTSTR lpszClassName, 

                 LPCTSTR lpszWindowName, DWORD dwStyle, 

                 const RECT& rect, CWnd* pParentWnd, 

                 UINT nID, CCreateContext* pContext) 

      { 

// TODO: Add your specialized code here and/or call the 

            base class 



return CWnd::Create(lpszClassName, lpszWindowName, 

                dwStyle, rect, pParentWnd, nID, pContext); 

      } 



이건 다음과 같이 바꾼다.

 

       BOOL CMyWnd::Create(DWORD dwStyle, const RECT& rect, 

                  CWnd* pParentWnd, UINT nID) 

      { 

return CWnd::Create(NULL, NULL, dwStyle, rect, 

                  pParentWnd, nID, NULL); 

      } 




3) 이렇게 한 다음 이 Window를 생성하고자하는 곳에서 다음과 같이 해주면 된다.

      CMyWnd MyWnd; 

      MyWnd.Create(WS_CHILD | WS_VISIBLE, 

                CRect(0, 0, 100, 100), this, ID_MYWND) ; 

      MyWnd.Invalidate(FALSE); 



이렇게 하면 그냥 사각형을 그린거와 같은 100X100 크기의 Window가 생성 된다.

CMyWnd안에서 WM_PAINT나 다른 Window Message를 이용하여 여러가지 작업을 할 수 있습니다.



- 2001.08.13 Smile Seo -
이올린에 북마크하기(0) 이올린에 추천하기(0)
2007/02/21 15:48 2007/02/21 15:48
http://www.webdizen.net/blog/trackback/2620
[로그인][오픈아이디란?]
webdizen:이 세상에 존재하는 모든 데이터를 체계화하고, 효과적으로 분석하는 그 날까지 이 재미난 연구를 계속해 나갈 생각입니다.

현재 OLAP, Data Warehouse, Data Mining, Cloud Computing, MapReduce, Data Modeling에 대해서 연구하고 있습니다.
이 세상에 존재하는 모든 데이터를 체계화하고, 효과적으로 분석하는 그 날까지 이 재미난 연구를 계속해 나갈 생각입니다. 현재 OLAP, Data Warehouse, Data Mining, Cloud Computing, MapReduce, Data Modeling에 대해서 연구하고 있습니다.
전체 (3018)
Webdizen (145)
Hardware (121)
Software (120)
Windows (5)
Unix & Linux (120)
Cloud Computing (3)
Programming (807)
Data Modeling (0)
Database (105)
Data Warehouse (2)
Data Mining (4)
Network (66)
Web (80)
Security (91)
Embedded (70)
Multimedia (27)
Mobile (14)
Graphic (24)
Management (633)
Knowledge (581)
«   2010/09   »
      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    
  1. yundream의 프로그래밍 이야기  03/10
    printf,scanf를 이용한 형식화된 입출력
  2. 은마군의 나태블록  2009
    파일 열기/저장하기 CFileDialog
  3. 상우 :: Oranzie's BLOG  2008
    World IT Show 2008
  4. 3인3색  2008
    cvs서버 설치하기
  5. PHP와 Web 2.0  2007
    속속 공개되는 Google Chart Maker
  1. 2010/09 (2)
  2. 2010/08 (2)
  3. 2010/07 (2)
  4. 2010/05 (1)
  5. 2010/04 (2)