원본 : 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()함수를 추가한다.
그러면 다음과 같은 함수가 만들어 진다.
3) 이렇게 한 다음 이 Window를 생성하고자하는 곳에서 다음과 같이 해주면 된다.
CMyWnd안에서 WM_PAINT나 다른 Window Message를 이용하여 여러가지 작업을 할 수 있습니다.
- 2001.08.13 Smile Seo -
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 -
"MFC" 카테고리의 다른 글
- Winamp 처럼 벽에 붙이기 (0)2007/02/22
- 윈앰프처럼 TaskBar와 SystemTray 마음대로 주무루기 (0)2007/02/22
- 일반적인 Child Window 만들기 (0)2007/02/21
- 자기 프로세스의 복사본을 만드는 방법 (0)2007/02/21
- 사용자 정의 Common Dialog 만들기 (0)2007/02/21
Tags Child Window

수안이의 컴퓨터 연구실



Leave your greetings.