'Dialog클래스명 변경'에 해당되는 글 1건

320x100

[MFC] Dialog 클래스명 바꾸기(rc편집)

Posted on 2010. 2. 25. 12:52
Filed Under Visual C++

<출처: http://blog.naver.com/amoros21/140024540662 2006/05/23>

다이얼로그도
윈도 클래스명 바꾸기(32770_바꾸기)

가끔은 클래스명으로 FindWindow를 할수도 있고  SendMessage, PostMessage를 보낼때가 있는데
대부분 다이얼로그는 클래스 명이 #32770으로(Spy++) 되어 있다.

1. 리소스파일(rc파일)을 메모장으로 열고..
IDD_MAINTAB_DIALOG DIALOGEX 0, 0, 195, 44
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "TestSeed"
CLASS "Seed Control"      // CLASS는 그냥 해주시고. 클래스 이름을 입력
FONT 9, "굴림"


2. APP의 InitInstance()에 추가사항
WNDCLASS wClass; 

 // 기존 윈도우 클래스 정보를 얻음.
::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wClass);

// 기존 윈도우 클래스 정보에서 클래스이름만을 변경.
wClass.lpszClassName = _T("Seed Control");
//변경된 클래스정보를 등록.
BOOL bOk;
bOk = AfxRegisterClass(&wClass);

Spy 로 찍어보면 클래스 명이 #32770이 아니라 Seed Control로 변경 되었음을 확인하면,

참고
wClass.style = CS_HREDRAW | CS_VREDRAW; //클래스 스타일
wClass.lpfnWndProc = WndProc; //윈도우 프로시져
wClass.cbClsExtra = 0; //윈도우 클래스 데이터 영역
wClass.cbWndExtra = 0; //윈도우의 데이터 영역
wClass.hInstance = hInstance; //인스턴스 핸들
wClass.hIcon = LoadIcon (NULL, IDI_APPLICATION); //아이콘 핸들
wClass.hCursor = LoadCursor (NULL, IDC_ARROW); //커서 핸들
wClass.hbrBackground = GetStockObject(WHITE_BRUSH); //배경브러쉬 핸들
wClass.lpszMenuName = NULL; //메뉴이름
wClass.lpszClassName = szAppName; //윈도우 클래스 이름

반응형

About

by 쑤기c

반응형