[윈도우 위에 새로운 윈도우 생성]
보통 API에서는
부모 윈도우를 만든 후 그 위에 자식 윈도우를 만들때..
CreateWindow 함수와 함께 WS_CHILD|WS_VISIBLE 를 하여 위치를 설정하면
해당 위치에 생성되게된다.
아..
그 전에..
윈도우 정보를 설정해줘야겠죠..
WNDCLASS이 구조체 사용하는거~ 아시죠.. ^^
이런 작업을 MFC에서는 어떻게 할까요..?
상식적인 내용이지만.. 그 상식 때문에.. 쉽게 잊어버릴수 있다는것~ *
MFC에서는 해당 객체에 포함된 멤버함수 Create 를 사용하게 됩니다.
만약 CWnd 를 상속받은 하나의 윈도우 클래스를 만들었다고 하였을때.
클래스 타입으로 버튼이나, 스태틱 컨트롤, 리스트 컨트롤 등을 설정한다면
그냥 자식 윈도우로 생성이 될것입니다. 허나
임의의 윈도우를 생성하여 그 위에 새로운 컨트롤들을 올려 사용하겠다 라고 하였을때는
분명 런타임 오류가 발생하겠죠.. ^^
왜냐...
임의의 윈도우기 때문에 API에서 사용했던 WNDCLASS와 같이 정보를 설정해주어야 합니다.
MFC에서는 AfxRegisterWndClass 함수를 사용하여 설정하여 줍니다.
ex)
CString strMyClass = AfxRegisterWndClass(CS_VREDRAW|CS_HREDRAW,
NULL, (HBRUSH)GetStockObject(BLACK_BRUSH),
NULL);
CWnd *wnd = new CWnd;
wnd->CreateEx(0, strMyClass, _T("child"), WS_OVERLAPPEDWINDOW|WS_CHILD|WS_VISIBLE,
10, 10, 300, 300, NULL, NULL);
이런 형태로 만들어주면 다이얼로그나 기타 여러 윈도우 위에..
새로운 하나의 윈도우를 자식으로 가질 수 있습니다..^^
'Program Language > VisualC(MFC)' 카테고리의 다른 글
[VS Error] LINK : fatal error LINK1104: cannot open file "LIBC.lib" (0) | 2012.04.05 |
---|---|
AfxMessageBox("....") 메세지 띄우는 함수의타이틀(Title)을 변경하고자 할 경우.. (0) | 2007.04.30 |
MFC에서 Command Line의 값 받기.. (0) | 2006.12.04 |
DLL 에 있는 비트맵 리소스를 실행 파일로 가져오는 방법 3가지 (0) | 2006.11.28 |
멀티뷰 구현.. (0) | 2006.11.09 |
윈도우 연산자 오류와 VxD 에러에 대한 코드정리 (0) | 2006.10.11 |