ETC/DailyRoutine

[방송통신대학교]Visual C++프로그래밍 1학기 중간평가 출석수업대체과제물

AnKiWoong 2022. 7. 30. 06:51
반응형
#include <windows.h>
#define ID_OK_BTN 2000
#define ID_OK_BTN1 2001// 메인 윈도에 추가된 버튼    // 이하 2줄 추가
#define ID_OK_BTN2 2002// 차일드 윈도에 추가된 버튼
HINSTANCE g_hInst;
LPCTSTR lpszClassL"HelloAPI";
LPCTSTR ChildClassNameL"ChildWin";// 첫 번째 차일드
LPCTSTR ChildClassName2L"ChildWin2";// 두 번째 차일드
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
LRESULT CALLBACK ChildWndProc2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);//
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszCmdParam,
                     int nCmdShow)
{
    HWND hWnd;
    MSG Message;
    WNDCLASS WndClass;
    WNDCLASS WndClass2;
    g_hInsthInstance;
//첫 번째 차일드
    WndClass.cbClsExtra0;
    WndClass.cbWndExtra0;
    WndClass.hbrBackground= (HBRUSH)GetStockObject(WHITE_BRUSH);// 배경색 흰색
    WndClass.hCursorLoadCursor(NULL, IDC_ARROW);
    WndClass.hIconLoadIcon(NULL, IDI_APPLICATION);
    WndClass.hInstancehInstance;
    WndClass.lpfnWndProc= (WNDPROC)WndProc;
    WndClass.lpszClassNamelpszClass;
    WndClass.lpszMenuNameNULL;
    WndClass.styleCS_HREDRAWCS_VREDRAW;
    RegisterClass(&WndClass);//메인윈도우 클래스 등록
//두 번째 차일드
    WndClass2.cbClsExtra0;
    WndClass2.cbWndExtra0;
    WndClass2.hbrBackground= (HBRUSH)GetStockObject(BLACK_BRUSH);// 배경색 검정색
    WndClass2.hCursorLoadCursor(NULL, IDC_ARROW);
    WndClass2.hIconLoadIcon(NULL, IDI_APPLICATION);
    WndClass2.hInstancehInstance;
    WndClass2.lpfnWndProc= (WNDPROC)WndProc;
    WndClass2.lpszClassNamelpszClass;
    WndClass2.lpszMenuNameNULL;
    WndClass2.styleCS_HREDRAWCS_VREDRAW;
    WndClass.lpfnWndProcChildWndProc;//차일드 윈도우 프로시저
    WndClass.lpszClassNameChildClassName;//차일드 윈도우 클래스이름
    RegisterClass(&WndClass);
    WndClass2.lpfnWndProcChildWndProc2;//차일드 윈도우 프로시저        // 이하 3줄 추가
    WndClass2.lpszClassNameChildClassName2;//차일드 윈도우 클래스이름
    RegisterClass(&WndClass2);
    hWndCreateWindow(lpszClass,//윈도우클래스 이름
                        L"Visual C++ 출석대체 과제",//윈도우타이틀
                        WS_OVERLAPPEDWINDOWWS_VISIBLE,//윈도우스타일
                        200, 200,
                        800, 600,//윈도우의 폭과 높이
(HWND)NULL,//부모윈도우 핸들
(HMENU)NULL,//윈도우가 가지는 메뉴핸들
                        hInstance,//인스턴스핸들
                        NULL);//여분의 데이터
    ShowWindow(hWnd, nCmdShow);
    while(GetMessage(&Message, 0, 0, 0))
{
        TranslateMessage(&Message);
        DispatchMessage(&Message);
}
    return Message.wParam;
}
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage,
                         WPARAM wParam, LPARAM lParam)
{
    LPCTSTR textL"202134-153578 안기웅";
    switch(iMessage)
{
    case WM_PAINT:
{
        PAINTSTRUCT ps;
        HDC hdcBeginPaint(hWnd, &ps);
        TextOut(hdc, 100, 100, text, lstrlen(text));// 1줄 과제내용
        EndPaint(hWnd, &ps);
        return 0;
}
    case WM_CREATE:
{
        HWND hChildWndCreateWindow(
            ChildClassName,// 차일드 윈도우 클래스 이름
            L"출석수업",// 윈도우 타이틀
            WS_OVERLAPPEDWINDOWWS_CHILD,// 윈도우  스타일
            50,// 윈도우 보일 때 x 좌표
            150,// 윈도우 보일 때 y 좌표
            260,// 윈도우 폭
            200,// 윈도우 높이
            hWnd,// 부모 윈도우
(HMENU)1000,
            g_hInst,// 인스턴스 핸들
(LPVOID)NULL);// 여분의 데이터
        ShowWindow(hChildWnd, SW_SHOW);
        hChildWndCreateWindow(
            ChildClassName2,// 추가되는 차일드 윈도우 클래스 이름
            L"소속",
            WS_OVERLAPPEDWINDOWWS_CHILD,
            400,
            150,
            260,
            200,// 윈도우 높이
            hWnd,// 부모 윈도우
(HMENU)1100,// 차일드 윈도우ID
            g_hInst,// 인스턴스 핸들
(LPVOID)NULL);// 여분의 데이터
        ShowWindow(hChildWnd, SW_SHOW);
        hChildWndCreateWindow(
            L"button",// 윈도우 클래스 이름
            L"대체시험일",// 윈도우 타이틀
            WS_CHILDWS_VISIBLE,// 윈도우 스타일
            100,// 윈도우 보일 때 x 좌표
            400,// 윈도우 보일 때 y 좌표
            150,// 윈도우 폭
            30,// 윈도우 높이
            hWnd,// 부모 윈도우
(HMENU)ID_OK_BTN,// 컨트롤 ID
            g_hInst,
(LPVOID)NULL);// 여분의 데이터
        if(!hChildWnd)
            return-1;
        hChildWndCreateWindow(// 추가된 버튼
            L"button",// 윈도우 클래스 이름
            L"학과",
            WS_CHILDWS_VISIBLE,// 윈도우 스타일
            500,// 윈도우 보일 때 x 좌표
            400,// 윈도우 보일 때 y 좌표
            100,// 윈도우 폭
            30,// 윈도우 높이
            hWnd,// 부모 윈도우
(HMENU)ID_OK_BTN1,// 컨트롤 ID
            g_hInst,
(LPVOID)NULL);// 여분의 데이터
        if(!hChildWnd)
            return-1;
        return 0;
}
    case WM_COMMAND:
{
        if(LOWORD(wParam) == ID_OK_BTN)
{
            MessageBox(hWnd, L"2022.0.0 일까지 제출", L"대체시험일", MB_OK);
}
        if(LOWORD(wParam) == ID_OK_BTN1)// 메인윈도에 추가된 버튼
{
            MessageBox(hWnd, L"컴퓨터과학과", L"학과", MB_OK);
}
        return 0;
}
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
}
    return(DefWindowProc(hWnd, iMessage, wParam, lParam));
}
LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    LPCTSTR textL"참석 불가능";
    switch(message)
{
    case WM_PAINT:
{
        PAINTSTRUCT ps;
        HDC hdcBeginPaint(hWnd, &ps);
        TextOut(hdc, 10, 10, text, lstrlen(text));
        EndPaint(hWnd, &ps);
        return 0;
}
    case WM_CREATE:
{
        HWND hChildWndCreateWindow(// 추가된 버튼
            L"button",// 윈도우 클래스 이름
            L"대체시험형태",// 윈도우 타이틀
            WS_CHILDWS_VISIBLE,// 윈도우 스타일
            50,// 윈도우 보일 때 x 좌표
            100,// 윈도우 보일 때 y 좌표
            100,// 윈도우 폭
            30,// 윈도우 높이
            hWnd,// 부모 윈도우
(HMENU)ID_OK_BTN2,// 컨트롤 ID
            g_hInst,// 인스턴스 핸들
(LPVOID)NULL);// 여분의 데이터
        if(!hChildWnd)
            return-1;
        return 0;
}
    case WM_COMMAND:
{
        if(LOWORD(wParam) == ID_OK_BTN2)
{
            MessageBox(hWnd, L"실습과제물", L"대체시험형태", MB_OK);//학과
}
        return 0;
}
}
    return DefWindowProc(hWnd, message, wParam, lParam);
}
LRESULT CALLBACK ChildWndProc2(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)// 추가된 CALLBACK함수
{
    LPCTSTR textL"서울지역대학";
    switch(message)
{
    case WM_PAINT:
{
        PAINTSTRUCT ps;
        HDC hdcBeginPaint(hWnd, &ps);
        TextOut(hdc, 10, 10, text, lstrlen(text));
        EndPaint(hWnd, &ps);
        return 0;
}
}
    return DefWindowProc(hWnd, message, wParam, lParam);
}

 

 

 
반응형