본문 바로가기

무작정 따라해보기(정리, 문제풀기)/Win32API

(23)
15. [WIN32 API 프로그래밍] 문자열 출력(그래픽) '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 4강. 그래픽 (3/3)'영상을 보고 정리한 내용입니다. 문자열 색 바꾸는 함수 SetTextColor() 이 함수 이후 출력되는 모든 문자열의 색을 바꾸는 함수이다. COLORREF SetTextColor( HDC hdc, COLORREF cColor ); SetBkColor() 이 함수 이후 출력되는 모든 문자열의 배경색을 바꾸는 함수이다. COLORREF SetBkColor( HDC hdc, COLORREF cColor ); InvalidateRect() 화면의 일부 또는 전체 영역(클라이언트 영역)을 다시 그릴 때 사용된다. (영역 설정 - 화면 일부: RECT구조체 사용, 화면 전체: 0또는 NULL) WM_PAINT 메시지를 발생시킨다. 그래서..
14. [WIN32 API 프로그래밍] 문자, 점 출력(그래픽) '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 4강. 그래픽 (2/3)'영상을 보고 정리한 내용입니다. 문자 출력 위한 함수 TextOut(HDC hdc, int nXStart, int nYStart, LPCTSTR lpString, int cbString); 윈도우에서 TextOut으로 출력하기 위해서는 모두 문자열로 출력을 해야 한다. cbString는 strlen()함수를 이용해서 문자열의 길이를 받는다. sprintf() 함수를 이용하여서 메모리에 출력을 한다.(char타입). sprintf()함수는 char형 배열 안에 문자열로 만들어서 넣어주는 함수이다. 색상 관련 컴퓨터는 색상을 값으로 다루며 색상 범위는 0~ 255이다. 윈도우즈 프로그래밍에서는 DWORD로 다룬다.(unsigned l..
13. [WIN32 API 프로그래밍] 그래픽 관련 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 4강. 그래픽 (1/3)'영상을 보고 정리한 내용입니다. 그래픽 관련 내용입니다. 그래픽 윈도우에서는 출력을 할 때 몇 구조가 있고 그 구조에서 제공하는 함수를 이용하여 출력을 할 수 있다. GDI는 출력을 할 때 쓰이는데 하드웨어와 관련된 것들을 다룰 수 있도록 해주며 출력을 할 때 쓰인다.(GDI는 Gdi.dll파일로 존재한다.) 출력하기 위한 장치의 속성 정보를 가지고 있는 DC를 이용하여서 GDI에게 출력을 요청할 수 있다. DC를 사용하는 그래픽 오브젝트 - 비트맵, 브러쉬, 펜, 팔레트, 폰트, Region, Path 등 DC는 HDC로 핸들로 이용한다. 화면에 출력을 하기 위한 DC관련 함수 : BeginPaint(), EndPaint(), ..
12. WIN32 API 프로그래밍 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 3강. 리소스 (4/4)'영상을 보고 정리한 내용입니다. 메뉴 리소스 각각의 메뉴가 선택되었을 때 해당하는 아이디가 부여된다. 메뉴가 클릭되었을 때 발생하는 메시지는 'WM_COMMAND'이다. 이 메시지가 발생할 때 메뉴의 항목에 대한 정보가 같이 전달된다. 누른 메뉴에 맞게 실행을 할 수 있는 코드를 WndProc에 작성하면 된다. 목록의 항목 아이디같은 정보는 wParam으로 전달되며 LOWORD(unsigned int, 4byte)를 통해서 들어온다. 메시지 박스 핸들, 문자열, 타이틀바, 메시지 형태를 받는다. 핸들 자리에 윈도우 핸들을 넣으면 메시지 창을 닫을 때까지 프로그램을 다시 사용할 수 없고 0을 넣으면 사용할 수 있다. 문자 리소스 캡..
11. WIN32 API 프로그래밍 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 3강. 리소스 (3/4)'영상을 보고 정리한 내용입니다. 커서 리소스 커서 아이디의 접두사는 'IDC_'이다. 커서 편집기로 편집 후 저장 -> '*.cur' 확장자로 저장됨 운영체제에서 기본적인 커서를 많이 제공합니다. LoadCursor함수로 커서의 모양을 로드하며 HINSTANCE와 LPCSTR을 받는다. wcex.hCursor = LoadCursor(nullptr, IDC_ARROW); 리소스 추가 -> Cursor 새로 만들기 ex) wcex.hCursor = LoadCursor(hInstance, MAKEINTRESOURCE(IDC_CURSOR1)); 직접 커서를 만들 때 커서의 기능을 하게 하려면 hot spot(핫 스폿) 설정해야함.(좌표값..
10. WIN32 API 프로그래밍 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 3강. 리소스 (2/4)'영상을 보고 정리한 내용입니다. 아이콘 리소스 아이콘의 아이디의 접두사는 'IDI_'이다. '*.ico' 파일 확장자(이미지이며 비쥬얼 스튜디의 내부의 편집기를 이용하여 만들 수 있다.) 아이콘의 크기는 16 x 16, 32 x 32, 48 x 47, 색상비트는 4, 8, 32비트로 정해져 있으며 기본은 크기 32 x 32, 색상비트 4비트(16색)로 되어 있다. HINSTANCE와 LPTSTR를 받는 LoadIcon함수를 이용하여 아이콘을 로드할 수 있다. 아이콘 아이디 정수값을 문자열 형식으로 지정할 수 있도록 매크로 함수 사용 ex) wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(ID..
9. WIN32 API 프로그래밍 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 3강. 리소스 (1/4)'영상을 보고 정리한 내용입니다. 여태까지 WinMain과 WndProc를 구성하여 윈도우 창을 생성하는 가장 기본적이고 정해져있는 코드들을 살펴보았다. 리소스 생성과 추가 및 다루기 사용자가 더 편리하게 이용할 수 있게 해주는 것이 리소스이다. 다이얼로그, 비트맵, 아이콘 메뉴, 커서, 엑셀레이터(단축키), 문자열(문자열에 아이디를 부여) 등을 리소스로 다룰 수 있다. 리소스는 아이디(중복되지 않는 양의 정수값)로 다룬다. 코드를 자동 생성 하였다면 리소스는 프로젝트명.rc로 생성돼있고 resource.h에 리소스에서 쓰이는 아이디가 정의되어있다. 스크립트 언어로 작성됨.(편집기로 작성가능) 혹시 제가 잘못 이해한 부분이(잘못된 ..
8. WIN32 API 프로그래밍 '나우캠퍼스X아워즈팜'유튜브의 'Win32 API 2강. Win32 API 프로그래밍 구조 (5/5)'영상을 보고 정리한 내용입니다. 자동 생성 코드입니다. https://github.com/kimdahin/WIN32-API/blob/master/Prac7/Prac7/Prac7.cpp