// Mouse Action Program //***(1)Çì´õ ÆÄÀÏ #include //#include "stdafx.h" // VS 2015¿¡¼­´Â ÁÖ¼® ó¸® #include // VS 2015¿¡¼­´Â ÁÖ¼® ó¸® LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //***(2)¸ÞÀÎ ÇÔ¼ö int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { WNDCLASS WndClass; //À©µµ¿ì Ŭ·¡½º ±¸Á¶Ã¼ HWND hwnd; //À©µµ¿ì ÇÚµé MSG msg; //¸Þ½ÃÁö ±¸Á¶Ã¼ //***(3)À©µµ¿ì Ŭ·¡½º ÃʱâÈ­¿Í µî·Ï 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 = TEXT("MouseClass"); //À©µµ¿ì Ŭ·¡½º À̸§ if (!RegisterClass(&WndClass)) //À©µµ¿ì Ŭ·¡½º register return 1; //***(4)À©µµ¿ì »ý¼º hwnd = CreateWindow( //À©µµ¿ì »ý¼º API ÇÔ¼ö TEXT("MouseClass"), //µî·ÏµÈ À©µµ¿ì Ŭ·¡½º À̸§ TEXT("MouseSDK"), //ŸÀÌƲ¹Ù¿¡ Ãâ·ÂµÉ ¹®ÀÚ WS_OVERLAPPEDWINDOW, //À©µµ¿ì ½ºÅ¸ÀÏ CW_USEDEFAULT, //À©µµ¿ìÁÂÃø»ó´ÜÀÇ xÁÂÇ¥ CW_USEDEFAULT, //À©µµ¿ìÁÂÃø»ó´ÜÀÇ yÁÂÇ¥ CW_USEDEFAULT, //À©µµ¿ìÀÇ ³Êºñ CW_USEDEFAULT, //À©µµ¿ìÀÇ ³ôÀÌ NULL, //ºÎ¸ðÀ©µµ¿ìÀÇ ÇÚµé NULL, //¸Þ´º ¶Ç´Â ÀÚ½Ä À©µµ¿ìÀÇ ÇÚµé hInstance, //¾îÇø®ÄÉÀÌ¼Ç ÀνºÅϽº ÇÚµé NULL //À©µµ¿ì »ý¼º µ¥ÀÌÅÍ ÁÖ¼Ò ); ShowWindow(hwnd, nCmdShow); //ÇÁ·¹ÀÎ À©µµ¿ì¸¦ È­¸é¿¡ Ç¥½Ã //***(5)¸Þ½ÃÁö ·çÇÁ while (GetMessage(&msg, NULL, 0, 0) > 0) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } //***(6)À©µµ¿ì ÇÁ·Î½ÃÀú LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; //µð¹ÙÀ̽º ÄÁÅؽºÆ® PAINTSTRUCT ps; //ÆäÀÎÆ® ±¸Á¶Ã¼ TCHAR str1[200] = TEXT("¸¶¿ì½ºÀÇ ¹öÆ°À» Ŭ¸¯Çϼ¼¿ä."); TCHAR str2[200] = TEXT("¸¶¿ì½ºÀÇ ¿À¸¥ÂÊ ¶Ç´Â ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯ÇÏ½Ã¸é ¸Þ½ÃÁö »óÀÚ°¡ ³ªÅ¸³³´Ï´Ù."); switch (message) // Ä¿³Î¿¡¼­ µé¾î¿Â ¸Þ½ÃÁö¸¦ switch¹®À¸·Î ó¸® { case WM_CREATE: return 0; case WM_LBUTTONDOWN: MessageBox(hwnd, TEXT("¸¶¿ì½ºÀÇ ¿ÞÂÊ ¹öÆ°À» Ŭ¸¯Çϼ̽À´Ï´Ù."), TEXT("¸¶¿ì½º ¿ÞÂÊ ¹öÆ° Ŭ¸¯!"), MB_OK); return 0; case WM_RBUTTONDOWN: MessageBox(hwnd, TEXT("¸¶¿ì½ºÀÇ ¿À¸¥ÂÊ ¹öÆ°À» Ŭ¸¯Çϼ̽À´Ï´Ù."), TEXT("¸¶¿ì½º ¿À¸¥ÂÊ ¹öÆ° Ŭ¸¯!"), MB_OK); return 0; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); TextOut(hdc, 100, 100, str1, lstrlen(str1)); TextOut(hdc, 100, 200, str2, lstrlen(str2)); EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, message, wParam, lParam); }