1.FONT
폰트 오브젝트를 사용해보자. 이전 오브젝트랑 사용법은 거의 동일하다.
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
|
|
실행결과
SetTextColor(hdc,RGB(255,0,0)), SetBkColor(hdc,RGB(255,255,0))
위의 두 함수를 사용하면 글자의 색, 배경색을 조절할수 있다.
2.Button
버튼을 만들어보자. 컨트롤들도 윈도우이기는 하지만 홀로 사용은 안된다. 반드시 부모 윈도우의 하위에 존재해야 한다. 메인 윈도우가 만들어 질 때(WM_CREATE 메시지가 발생할 때)만들어 준다. 컨트롤도 윈도우 이기 때문에 Create Window 함수로 만들어야 한다.
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam) { switch (iMessage) { case WM_CREATE: CreateWindow("button", "Click Me", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 100, 25, hWnd, (HMENU)0, g_hInst, NULL); CreateWindow("button", "Me Tow", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 50, 100, 25, hWnd, (HMENU)1, g_hInst, NULL); return 0; case WM_COMMAND: switch (LOWORD(wParam)) { case 0: MessageBox(hWnd, "First Button Clicked", "Button", MB_OK); break; case 1: MessageBox(hWnd, "Second Button Clicked", "Button", MB_OK); break; } return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return(DefWindowProc(hWnd, iMessage, wParam, lParam)); } |
CreateWindow("button","Click Me",WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20,20,100,25,hWnd,(HMENU)0,g_hInst,NULL);
함수를 해석하자면 첫 번째 인자 “button“은 만들고자 하는 윈도우의 윈도우 클래스이다.
두 번째 인자는 버튼에 적힐 이름을 지정해준다. 세 번째 인자는 스타일이다.(아래표 참고)
자식 윈도우이기 때문에 WS_CHILD 옵션은 반드시 주어야 한다. showwindow 함수를 호출하지 않아도 컨트롤이 화면에 나타나게 해야하므로 WS_VISIBLE 옵션 또한 반드시 주어야 한다.
4~7번 인자는 윈도우의 위치와 크기를 지정한다. 8번째는 부모 윈도우를 지정하는 인자이다. 여기선 메인 윈도우인 hWnd가 들어가고 hWnd가 파괴될 때 같이 파괴된다. 9번째 인자는 ID이다 컨트롤간의 구분을 위해 사용하는 ID이기 때문에 한 부모 아래의 컨트롤끼리 중복되지 않는 ID를 가지기만 하면 된다.
case WM_COMMAND:
switch (LOWORD(wParam))
{
case 0:
MessageBox(hWnd, "First Button Clicked", "Button", MB_OK);
break;
case 1:
MessageBox(hWnd, "Second Button Clicked", "Button", MB_OK);
break;
}
위의 코드는 버튼이 눌러졌을 때 메시지를 출력하는 코드이다. 버튼을 클릭할 경우 WM_COMMAND 메시지를 부모 윈도우에게 보내며 아래의 표에 있는 내용이 전달되는 정보이다.
실행화면
2.Check Box
체크 박스는 참,거짓의 진위적인 선택을 입력받을 때 사용된다. 아래의 그림이 CheckBox이다.
나머지는 내일....
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151119 업무일지 -여지윤- 맵핑기법 (4) | 2015.11.19 |
---|---|
20151119 윤재희 #6. 게임 작성(맵핑, 박스 밀기) (6) | 2015.11.19 |
20151119 22번 업무일지 우대희 API (6) | 2015.11.19 |
20151119-김재홍-win32API_6일차-푸시푸시게임 (4) | 2015.11.19 |
2015.11.18_개인업무일지_[WIN32API #5]_이량경 (4) | 2015.11.19 |
20151118_안향진_API_5 (5) | 2015.11.19 |
20151118 - 홍준모 게임만들기 ( 5일차) (4) | 2015.11.18 |
20151118 수업 / API_5 남수진 (6) | 2015.11.18 |