본문 바로가기

분류 전체보기

(602)
사각형 그리기 (Section 23) 참고> blog.naver.com/tipsware/221059977193 김성엽의 Windows 프로그래밍 이야기 기본적으로 Windows 프로그래밍을 배운다는 뜻은 Win32 API를 사용한 응용 프로그램을 만드는 방법에 ... blog.naver.com 소스코드> github.com/praivesi/WindowsProgrammingToy/commit/310d3ddd0ab95346afda2696a6cadf831e07f2a3
git abort 명령어가 안먹힐 때 git 작업하다가 에러가 나거나 취소를 하고 싶을 때 나는 보통 abort 명령을 실행시켰다. 예를 들어, rebase 작업을 하기 위해 >> git rebase BASE_BRANCH 명령을 입력하였다가, 갑자기 취소하고 싶어서 ctrl + C 를 눌렀다. 중간에 취소해서 그런지 rebase 관련 에러가 떴다. >> error: could not read '.git/rebase-apply/head-name': No such file or directory 나는 이럴 때 보통 >> git rebase --abort 명령을 통해 rebase 작업을 취소하였다. 하지만 위의 에러는 abort 명령이 먹히질 않았다. 스택오버플로우님의 도움을 받은 결과 >> git rebase --quit 명령어를 써서 해결하였다.
POINT (Section 22) 참고> blog.naver.com/tipsware/220975597682 1. POINT: 좌표의 한 점을 나타내는 구조체 2. CPoint: MFC에서 점 단위 정보를 저장하기 위해 사용되는 클래스 -> 좌표 정보 외에 추가적인 정보를 저장할 필요가 없기 때문에 tagPOINT 구조체에서 상속받아 선언됨. -> +, -, ==, != 과 같은 연산자를 재정의하여 점 간의 거리를 계산한다거나 좌표를 비교하는 등의 다양한 표현을 연산에서 사용 가능하기 때문에 MFC 클래스의 많은 함수가 POINT 대신에 CPoint 클래스의 포인터를 사용 3. CPoint 클래스를 꼭 MFC에서만 사용할 수 있는 건 아님. GetCursorPos() 같은 API 함수를 사용할 때도 POINT 구조체 대신에 CPoint 클..
GetDC & ReleaseDC (Section 21) 참고> blog.naver.com/tipsware/220987761947 1. Windows 운영체제에서 그림을 그리기 위해선 GDI가 제공하는 DC(Device Context)를 먼저 얻어 와야 함. -> ex) Rectangle(h_dc, 50, 50, 100, 100); 2. GetDC: '화면 전체' 또는 '특정 Window'에 그림을 그리기 위해 사용할 DC를 만드는 함수 3. DC는 기본 설정값(Pen은 검은색 실선, Brush는 흰색 채우기..)으로 GDI Object가 만들어져서 그 핸들 값이 저장되어 있음. -> 다른 GDI Object를 쓰고 싶으면 SelectObject() 함수를 사용하여 현재 사용중인 GDI Object를 다른 GDI Object로 변경해야 함. -> But, Ge..
Windows 컴퓨터의 설정 정보 (Section 20) 참고> blog.naver.com/tipsware/220983229873 1. GetSystemMetrics() : 컴퓨터에서 하드웨어에 따라 달라지거나 사용자에 의해서 재설정 가능한 정보들을 프로그램에서 얻을 때 사용 -> 파라미터로 얻고 싶은 정보의 상수값을 넣어주면 됨. ex) SM_CXSCREEN, SM_CYSCREEN, SM_CYCAPTION...
비트 패턴 (Section 19) 참고> blog.naver.com/tipsware/220986010426 1. Windows의 비트 패턴: Windows 운영체제는 핸들 개념을 쓰기 때문에 응용 프로그램이 직접 비트맵에 접근할 수 없음. -> 그래서 비트맵의 '비트 패턴'을 통째로 복사해오는 함수(GetBitmapBits)와 새로운 '비트 패턴'을 해당 비트맵에 설정하는 함수(SetBitmapBits)가 있음. 2. GetBitmapBits: 비트맵의 '비트 패턴'을 복사해오는 함수 3. SetBitmapBits (현재는 SetDIBits): 비트맵에 새로운 '비트 패턴'을 설정하는 함수 -> 이 함수는 16비트 Windows에서 쓰던 함수고 지금은 SetDIBits 함수로 대체됨
DC (Section 18) 참고> blog.naver.com/tipsware/220983425334 1. DC(Device Context)에는 여러 가지의 GDI Object(Pen, Brush, Bitmap, Font ...)가 연결되어 있는데 현재 사용중인 GDI Object를 확인할 때는 GetCurrentObject 함수를 사용하면 됨. -> ex) ::GetCurrentObject(h_dc, OBJ_BITMAP); (:: 는 Win API 네임스페이스를 의미) 2. 윈도우와 연결된 DC에서 비트맵 정보를 얻게 되면 비트맵의 크기가 클라이언트 영역의 크기와 일치하는 것이 아니라 윈도우 전체 크기(캡션, 테두리 영역 포함)와 일치함 -> 따라서 윈도우의 크기를 사용해야 할 경우, GetWidnowRect 함수를 사용할 필요 ..
GDI (Section 16) 참고> blog.naver.com/tipsware/220986173576 Bitmap과 GDI 그리고 DC (Feat. GDI Object) 한동안 제가 비트맵에 대한 블로깅을 참 많이 했는데, 그 이유가 바로 GDI와 DC를 설명하려고 했던 것... blog.naver.com 1. GDI(Graphic Device Interface): Windows 운영체제가 그래픽 장치에 대해 프로그램이 독립성을 유지할 수 있도록 만든 기술 -> Windows 운영체제는 그래픽 장치에 대해 프로그램 소스 코드가 독립성을 유지할 수 있도록 그래픽 장치를 하나의 모델로 추상화시킴 2. GDI Object: Windows 운영체제는 그래픽 장치를 추상화 시키기 위해서 그리기에 필요한 요소들을 여러 개의 객체로 구성하고 장..