¿¹Á¦ 1) Win32 API¸¦ ÀÌ¿ëÇÑ À©µµ¿ì ÇÁ·Î±×·¡¹Ö (Ref1. Chap.3.1) // HelloAPI.cpp : Defines the entry point for the application. // #include "stdafx.h" // À©µµ¿ì ÇÁ·Î½ÃÁ® Á¤ÀÇ LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // TODO: Place code here. static char szAppName[] = "Start Visual C++ 6.0"; HWND hwnd; MSG msg; WNDCLASSEX wndclass; wndclass.cbSize = sizeof (wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); // À©µµ¿ì Ŭ·¡½º µî·Ï hwnd = CreateWindow(szAppName, // À©µµ¿ì »ý¼º "ºñÁÖ¾ó C++ 6.0 ½ÃÀÛ", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); while (GetMessage(&msg, NULL, 0, 0)) // ¸Þ½ÃÁö ó¸® { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch (msg) { case WM_PAINT : // WM_PAIN ¸Þ½ÃÁö ¹ß»ý hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); // ½ÇÁ¦ ¸Þ½ÃÁö Ãâ·Â DrawText(hdc, "ºñÁÖ¾ó C++ 6.0À» °øºÎÇÏ°Ô µÈ °ÍÀ» ȯ¿µÇÕ´Ï´Ù.", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint(hwnd, &ps); return 0; case WM_DESTROY : PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, msg, wParam, lParam); } cf. DrawAPI case WM_PAINT : // WM_PAIN ¸Þ½ÃÁö ¹ß»ý hdc = BeginPaint(hwnd, &ps); hBrush = CreateSolidBrush(RGB(255,0,0)); SelectObject(hdc, hBrush); Rectangle(hdc, 50,50,250,250); hBrush = CreateSolidBrush(RGB(0,255,0)); SelectObject(hdc, hBrush); Ellipse(hdc, 350,50,650,250); DeleteObject(hBrush); TextOut(hdc, 300, 400, "DrawAPIÀÔ´Ï´Ù.!!", 16); EndPaint(hwnd, &ps); return 0; ¿¹Á¦ 2) MFC¸¦ ÀÌ¿ëÇÑ À©µµ¿ì ÇÁ·Î±×·¡¹Ö°úÀÇ ºñ±³. (Ref.1. Chap.4.3) //HelloMFC.h ÆÄÀÏ ³»¿ë. class CHelloApp : public CWinApp // ¾ÖÇø®ÄÉÀÌ¼Ç Å¬·¡½º Á¤ÀÇ { public : virtual BOOL InitInstance(); }; class CMainWindow : public CFrameWnd // ¸ÞÀÎ À©µµ¿ì Ŭ·¡½º Á¤ÀÇ { public : CMainWindow(); protected : afx_msg void OnPaint(); DECLARE_MESSAGE_MAP() }; //HelloMFC.cpp ÆÄÀÏ ³»¿ë. #include #include "HelloMFC.h" CHelloApp theApp; // Àü¿ª °´Ã¼ Á¤ÀÇ BOOL CHelloApp::InitInstance() // ÃʱâÈ­ ÀÛ¾÷ ¼öÇà { m_pMainWnd = new CMainWindow; m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE; } BEGIN_MESSAGE_MAP(CMainWindow, CFrameWnd) ON_WM_PAINT() END_MESSAGE_MAP() CMainWindow::CMainWindow() // À©µµ¿ì »ý¼º { Create(NULL, "ºñÁÖ¾ó C++ 6.0 ½ÃÀÛ"); } void CMainWindow::OnPaint() // ¸Þ½ÃÁö Ãâ·Â { CPaintDC dc(this); CRect rect; GetClientRect(&rect); dc.DrawText("MFC¸¦ ÀÌ¿ëÇÏ¿© ºñÁÖ¾ó C++ 6.0À» °øºÎÇÏ°Ô µÈ °ÍÀ» ȯ¿µÇÕ´Ï´Ù.", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); }