프로그래밍/WindowsAPI 스피비 2011. 5. 13. 10:52
1.삭제 ( DeleteObject ) / MyPen & OldPen 교체이유 GDI 오브젝트는 사용한 후 반드시 삭제해야 한다. 왜냐하면? =>GDI 오브젝트도 메모리를 사용하기 때문이다. 메모리를 할당한 후 반드시 해제해야 하는 것과 마찬가지로 GDI 오브젝트도 사용이 끝나면 해제하는 것이 원칙이다. ( 해제하지 않으면 메모리와 리소스를 갉아먹게 될 것이다 ) BOOL DeleteObject ( HGDIOBJ hObject ); 삭제하고자 하는 GDI 오브젝트의 핸들만 인수로 넘겨주면 된다. 단 , 이때 주의할 것은 DC 에 현재 선택되어 있는 GDI 오브젝트는 삭제할 수 없다는 점인데 이는 현재 사용되고 있는 객체를 함부로 삭제하도록 내버려 둘 수는 없기 때문에 생긴 일종의 안전규정 이다. 그래서 ..
프로그래밍/WindowsAPI 스피비 2011. 5. 13. 10:45
보기전에 이글을 참조하자. [프로그래밍/WindowsAPI] - API-그래픽(GDI Object) GDI오브젝트를 설정해서 사용할때 SelectObject함수를 이용한다. 또한 지울때는 DeleteObject() 함수를 이용한다. SelectObject(); DeleteObject(); 이때 주의할 점이 한가지 있다. DC에는 한가지 GDIObject만을 설정할 수 있다. 그래서 SelectObject를 사용하여 설정해줄 수 있는데 지금 설정된 Object를 지워주는 실수를 하게되면, 에러가 발생한다. 비쥬얼 C++ 에서는 안전규정이 되어있어서 설정된 GDI오브젝트를 지울 수 없게 설정되어있다. 그럼 결국 메모리누수가 발생된다. 주의해서 지워주장 ㅋㅋㅋ
프로그래밍/WindowsAPI 스피비 2011. 5. 13. 10:38
GDI (Graphic Device Interface) =>화면, 프린터 등의 모든 출력 장치를 제어하는 윈도우즈 핵심 모듈중 하나이다. 즉, 출력을 위한 중앙 통제 센터 정도로 생각하자. 윈도우즈 프로그램에서의 모든 출력은 GDI 를 통해서 화면과 프린터로 나가게 되어 있다. GDI 오브젝트 (GDI Object) 란? => 그래픽 출력에 사용되는 도구를 말하며 펜 , 브러시 , 비트맵 , 폰트 증증이 모두 GDI 오브젝트 이다. ( 사람이 그림그릴때 쓰는 연필, 붓 등을 생각하면 된다 ) GDI 오브젝트를 모아놓은 것이 DC 이며 GDI 는 현재 DC 에 선택되어 있는 GDI 오브젝트를 사용한다. 그래서 사용자는 그래픽을 그리기 전에 DC 에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로 그래..
프로그래밍/WindowsAPI 스피비 2011. 5. 13. 10:20
1.리소스란? 프로그램은 코드와 데이터로 구성된다. =>데이터는 프로그램의 처리 대상. 코드는 데이터를 처리하는 수단. (데이터의 의미를 확장하여 코드가 아닌 모든것을 데이터라고 할 때 비트맵 , 아이콘 , 메뉴 , 문자열 등등 프로그램의 논리와 무관한 모든 것들이 데이터에 속한다. 이런 것들은 프로그램의 동작을 통제한다기 보다는 단순한 장식인 경우가 많다.) 도스 프로그래밍 에서는 이런 데이터를 만들고 관리하는 작업이 하나의 과정에 통합되어 있지만 윈도우즈 프로그래밍에서는 별도의 작업과정으로 분리하고 있다. 코드의 논리와 무관한 데이터들을 리소스 (Resource) 라고 하며 메뉴 , 비트맵 , 엑셀러레이터 , 문자열 , 아이콘 , 커서 등등이 여기에 속한다. 리소스들은 별도의 편집기로 만들어져 컴파일..
프로그래밍/WindowsAPI 스피비 2011. 5. 11. 12:36
//매크로함수들 MAKEINTRESOURCE() : 숫자로 정의된 리소스 이름을 문자열 형태로 바꾸기위해 사용. TEXT() : 문자열상수를 만든다. 유니코드로 만든다. //함수들