Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- arduino compiler
- C언어
- 라인트레이서
- Array
- stl
- WinAPI
- 아두이노 소스
- 아두이노 컴파일러
- Arduino
- 아두이노
- LineTracer
- 수광 소자
- list
- map
- html
- 시스템프로그래밍
- 자료구조
- 운영체제
- Deque
- priority_queue
- queue
- set
- vector
- Stack
- directx
- Algorithm
- Visual Micro
- 컴퓨터 그래픽스
- 통계학
- c++
Archives
- Today
- Total
Kim's Programming
WinAPI - 첫번째 시작 - 프로젝트 만들기 본문
C언어에서는 콘솔으로 만들었기 때문에 콘솔응용 프로그램을 선택하여 만들었지만 WinAPI는 프로젝트 생성이 조금 다릅니다. 전에는 위에 있는 win32 콘솔 응용 프로그램을 선택하여 만들었지만 WinApi는 win32 프로젝트를 용하여 프로젝트를 생성 해 주면됩니다. 나머지는 동일합니다.
WinApi 첫 예제의 소스입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include<Windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); HINSTANCE g_hInst; LPCTSTR lpszClass = TEXT("첫번째"); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam, int nCmdShow) { HWND hWnd; MSG Message; WNDCLASS WndClass; g_hInst = hInstance; WndClass.cbClsExtra = 0; WndClass.cbWndExtra = 0; WndClass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); WndClass.hCursor = LoadCursor(NULL, IDC_ARROW); WndClass.hIcon = LoadIcon(NULL, IDI_APPLICATION); WndClass.hInstance = hInstance; WndClass.lpfnWndProc = WndProc; WndClass.lpszClassName = lpszClass; WndClass.lpszMenuName = NULL; WndClass.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&WndClass); hWnd = CreateWindow(lpszClass, lpszClass, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, (HMENU)NULL, hInstance, NULL); ShowWindow(hWnd, nCmdShow); while (GetMessage(&Message, NULL, 0, 0)) { TranslateMessage(&Message); DispatchMessage(&Message); } return (int)Message.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { switch (iMessage) { case WM_DESTROY: PostQuitMessage(0); return 0; break; } return(DefWindowProc(hWnd, iMessage, wParam, lParam)); } | cs |
다음 소스를 컴파일 하게되면 다음과 같은 결과가 나옵니다.
하얀색 글배경과 구분이 안되어서 검은색 테두리 붙여 보았습니다. 우선 윈도우 하나를 만든것인데 간단한 윈도우지만 온전한 하나의 윈도우이므로 표준 윈도우가 가진 모든 기능을 다 발휘할 수 있습니다. 타이틀 바를 드래그하면 윈도우의 위치가 옮겨지고 경계선을 드래그 하면 크기가 변경되며 시스템 메뉴의 키보드 지원까지 완벽하게 작성되어 있습니다. 프로그램을 종료하면 다시 개발 환경으로 돌아옵니다. 다음 포스팅에서는 분석을 해보겠습니다.
'Programming > Windows API' 카테고리의 다른 글
WinApi - 출력(2/2) (0) | 2015.08.29 |
---|---|
WinApi - 출력(1/2) (0) | 2015.08.27 |
WinApi - 분석(2/2) (0) | 2015.08.26 |
WinApi - 분석(1/2) (1) | 2015.08.26 |
WinAPI - 시작하기전에 알고 갑시다. (0) | 2015.08.24 |