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);
}
반응형