SDK 1 n Hello SDK 14 include tchar

  • Slides: 24
Download presentation

SDK 프로그램 기본 구조 (1) n Hello. SDK 예제 코드 (1/4) #include <tchar. h>

SDK 프로그램 기본 구조 (1) n Hello. SDK 예제 코드 (1/4) #include <tchar. h> #include <windows. h> // Win. Main 함수에서 참조하므로 함수 원형을 선언한다. LRESULT CALLBACK Wnd. Proc(HWND, UINT, WPARAM, LPARAM); int WINAPI Win. Main(HINSTANCE h. Instance, HINSTANCE h. Prev. Instance, LPSTR lp. Cmd. Line, int n. Cmd. Show) { WNDCLASS wndclass; HWND hwnd; MSG msg; // 1. 윈도우 클래스를 초기화하고 운영체제에 등록한다. wndclass. style = CS_HREDRAW | CS_VREDRAW; // 스타일 지정 wndclass. lpfn. Wnd. Proc = Wnd. Proc; // 윈도우 프로시저 이름 wndclass. cb. Cls. Extra = 0; // 여분 메모리(0바이트) wndclass. cb. Wnd. Extra = 0; // 여분 메모리(0바이트) wndclass. h. Instance = h. Instance; // 인스턴스 핸들 wndclass. h. Icon = Load. Icon(NULL, IDI_APPLICATION); // 아이콘 모양 wndclass. h. Cursor = Load. Cursor(NULL, IDC_ARROW); // 커서 모양

SDK 프로그램 기본 구조 (2) n Hello. SDK 예제 코드 (2/4) wndclass. hbr. Background

SDK 프로그램 기본 구조 (2) n Hello. SDK 예제 코드 (2/4) wndclass. hbr. Background = (HBRUSH)Get. Stock. Object(WHITE_BRUSH); // 배경(흰색) wndclass. lpsz. Menu. Name = NULL; // 메뉴(NULL->메뉴 없음) wndclass. lpsz. Class. Name = TEXT("Hello. Class"); // 윈도우 클래스 이름 if(!Register. Class(&wndclass)) return 1; // 2. 윈도우를 생성하고 화면에 보이게 한다. hwnd = Create. Window(TEXT("Hello. Class"), TEXT("Hello. SDK"), WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, NULL, h. Instance, NULL); Show. Window(hwnd, n. Cmd. Show); // 3. 메시지 큐에서 메시지를 하나씩 꺼내서 처리한다. while (Get. Message(&msg, NULL, 0, 0) > 0) { Translate. Message(&msg); Dispatch. Message(&msg); } } return msg. w. Param;

SDK 프로그램 기본 구조 (3) n Hello. SDK 예제 코드 (3/4) LRESULT CALLBACK Wnd.

SDK 프로그램 기본 구조 (3) n Hello. SDK 예제 코드 (3/4) LRESULT CALLBACK Wnd. Proc(HWND hwnd, UINT message, WPARAM w. Param, LPARAM l. Param) { HDC hdc; PAINTSTRUCT ps; TCHAR *str = TEXT("Hello, SDK"); // 4. 발생한 메시지의 종류에 따라 적절히 처리한다. switch(message) { case WM_CREATE: return 0; case WM_LBUTTONDOWN: Message. Box(hwnd, TEXT("마우스를 클릭했습니다. "), TEXT("마우스 메시지"), MB_OK); return 0; case WM_PAINT: hdc = Begin. Paint(hwnd, &ps); Text. Out(hdc, 100, str, _tcslen(str)); End. Paint(hwnd, &ps); return 0;

SDK 프로그램 기본 구조 (4) n Hello. SDK 예제 코드 (4/4) case WM_DESTROY: Post.

SDK 프로그램 기본 구조 (4) n Hello. SDK 예제 코드 (4/4) case WM_DESTROY: Post. Quit. Message(0); return 0; } } // 응용 프로그램이 처리하지 않은 메시지는 운영체제가 처리한다. return Def. Window. Proc(hwnd, message, w. Param, l. Param);