2014년 10월 27일 월요일

윈도우의 클래스 이름 등록 및 변경하기.

CDialog Base 프로젝트....

BOOL CMyApp::InitInstance()
{
    WNDCLASS wc;

    wc.lpszClassName = "MyApp";

    AfxRegisterClass(&wc);  

    ...
}

rc파일의 DIALOG부분에 클래스 이름 추가
IDD_LIMITDLGINSTANCE_DIALOG DIALOGEX 0, 0, 195, 44
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "TESTDIALOG"
CLASS "MyApp"   <<--------------------- 추가
FONT 8, "MS Sans Serif"
BEGIN
    DEFPUSHBUTTON   "OK",IDOK,138,7,50,14
    PUSHBUTTON      "Cancel",IDCANCEL,138,23,50,14
END

CMainFrame을 사용하는 경우(SDI나 MDI 프로젝트)

LPSTR lpszClass="클래스이름";


CMainFrame::CMainFrame()
{
    WNDCLASS    wndClass;
    ::ZeroMemory  (&wndClass, sizeof(WNDCLASS));
    ::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wndClass);
    wndClass.lpszClassName = lpszClass;
    wndClass.hIcon = LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_DOCTYPE));
    AfxRegisterClass(&wndClass);
 }

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
    cs.lpszClass=lpszClass;
    return CFrameWnd::PreCreateWindow(cs);
}

댓글 없음: