Programming Language/Windows API

keyboard[1]

D4tai1 2018. 8. 27.

1. 키보드 입력 시 동작

void inirect(RECT *rect) {
	rect->left = 200;
	rect->top = 200;
	rect->right = 400;
	rect->bottom = 400;
}

void myini(HDC hdc, RECT *rect) {
	TCHAR tmp[80];

	_stprintf_s(tmp, _T("아무키나 입력하세요. "));
	TextOut(hdc, 100, 10, tmp, _tcslen(tmp));

	//DrawText(hdc, tmp, _tcslen(tmp), rect, DT_LEFT);
}

void myinput(HDC hdc, RECT *rect) {
	TCHAR tmp[80];

	_stprintf_s(tmp, _T("짜잔!!!                            "));

	TextOut(hdc, 100, 10, tmp, _tcslen(tmp));
	//DrawText(hdc, str, _tcslen(str), rect, DT_CENTER);

}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
		PAINTSTRUCT ps;
		HDC hdc;
		RECT rect;

	case WM_COMMAND:
	{
		int wmId = LOWORD(wParam);
		// 메뉴 선택을 구문 분석합니다.
		switch (wmId)
		{
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
	}
	break;

	case WM_CREATE:
	{
		inirect(&rect);
	}
	break;

	case WM_CHAR:
	{
		hdc = GetDC(hWnd);

		myinput(hdc, &rect);

		ReleaseDC(hWnd, hdc);
	}
	break;

	case WM_PAINT:
	{
		hdc = BeginPaint(hWnd, &ps);

		inirect(&rect);
		myini(hdc, &rect);

		EndPaint(hWnd, &ps);
	}
	break;
	case WM_DESTROY:
		PostQuitMessage(0);
		break;
	default:
		return DefWindowProc(hWnd, message, wParam, lParam);
	}
	return 0;
}

 

[실행화면]

 

  -> 

 

'Programming Language > Windows API' 카테고리의 다른 글

keyboard[3]  (0) 2018.08.27
keyboard[2]  (0) 2018.08.27
키보드 메세지 처리  (0) 2018.08.26
TextOut(), DrawText()  (0) 2018.08.26
기본구조 상세설명  (0) 2018.08.25

댓글