[ C/ C++ 프로그래밍 ]/[ WinAPI ] 썸네일형 리스트형 파일 불러 올때 상대 경로를 설정 방법 OPENFILENAME OFN; TCHAR lpstrFile[MAX_PATH]=""; memset(&OFN, 0, sizeof(OPENFILENAME)); OFN.lStructSize = sizeof(OPENFILENAME); OFN.hwndOwner=hWnd; OFN.Flags = OFN_NOCHANGEDIR; // 제일 마지막 경로를 저장하지 않는다. OFN.lpstrInitialDir = "DataFile\\Image\\Blinding"; // 시작될 상대 경로 OFN.lpstrFilter="Tag File(*.tga)\0*.tga\0Bitmap File(*.bmp)\0*.bmp\0"; // 불러올 파일 설정 더보기 [Windows Api 정복 정리 ] DC(Device ConText) ㅇ 윈도우즈 구성 - 윈도우즈는 세가지 동적 연결 라이브러리로 구성되어 있다. - KERNEL : 메모리를 관리하고 프로그램을 실행 - USER : 유저 인터페이스와 윈도우를 관리하는 USER - GDI : 화면처리와 그래픽 담당 ㅇ DC(Device ConText) - 출력에 필요한 모든 정보를 가지는 데이터 구조체 - GDI에 의해 관리 - 어떤 폰트, 색상, 굵기, 출력방법 등이 모두 출력에 필요한 정보 ㅇ 사용예) LineTo - LineTo(hDC,X,Y) : 선의 색상, 굵기, 모양 등의 정보를 모두 모아 DC에 넣고 DC의 핸들을 넘겨 받아 그린다. - LineTo(hDC,100,100) : 화면에 여러개의 창이 있는 경우 내가 지정한 창을 찾아 LinTo 함수를 실행한다. ㅇ 사용예) Te.. 더보기 [Windows Api 정복 정리 ] 메시지 처리 함수 (WinProc) ㅇ 메시지 처리 함수 (WinProc) LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); - 메시지가 발생할 때 프로그램의 반응을 처리하는 일을 한다. - WndProc 는 윈도우 프로시저(WIndow Procedure)라는 뜻 - WinMain내의 메시지 루프는 메시지를 메시지 처리함수로 보내주기만 할뿐 , WinMain에 의해 호출되는 것이 아니라 윈도우즈에 의해 호출됨 - 운영체제에 의해 호출되는 응용 프로그램 내의 함수를 콜백(CallBack) 함수라고 함 - 인수 4개는 MSG 구조체의 멤버 4개와 동일 - HWND: 메시지를 받는 핸들 - UINT : 메시지의 종류 - WPARAM,LPARAM : 메시지에 따라 부가적인 정보 - WndProc의 구조 s.. 더보기 [Windows Api 정복 정리 ] 메시지 루프 ㅇ 윈도우즈 시스템 - 윈도우즈를 메시지 구동 시스템(Message Driven System)이라고 함 , 도스와 윈도우의 차이점 - 윈도우즈는 메시지(상황)에 따라 실행 순서가 달라짐 , 도스는 미리 입력된 순차적 실행 ㅇ 메시지 - 사용자나 시스템 내부적인 동작에 의해 발생된 일체의 변화에 대한 정보 ex) 마우스 버튼클릭 - 메시지가 발생하면 프로그램에서는 메시지가 어떤 정보를 담고 있는가를 분석하여 어떤 루틴을 호출 할것인가를 결정 ㅇ 메시지 루프 - 윈도우 프로그램에서 메시지를 처리하는 부분을 메시지 루프라고 함 - 보통 WinMain 함수의 끝에 다음과 같은 형식으로 존재 while(GetMessage(&Message,0,0,0)) { TranslateMessage(&Message); Disp.. 더보기 [Windows Api 정복 정리 ] WinMain & 윈도우 클래스 ㅇ WinMain int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance ,LPSTR lpszCmdParam,int nCmdShow - hInstance : 프로그램의 인스턴스 핸들 - hPrevInstance : 바로 앞에 실행된 현재 프로그램의 인스턴 핸들, WIN32에서는 항상 NULL, 호환성을 위해 존재 - lpCmdLine : 명령행, 도스의 argv인수에 해당 - nCmdShow : 프로그램이 실행될 형태, 최소화, 보통모양이 전달 ※ 인스턴스(Instance) : 클래스가 메모리에 실제로 구현된 실체를 의미, 실행된 프로그램 ==> 인스턴스 - 각 메모장은 서로 다른 인스턴스 핸들을 가지고 있다. - 인스턴스 핸들값으로 두개의 메.. 더보기 [Windows Api 정복 정리 ] 기초 ㅇ API - 특정 시스템(운영체제든 하드웨어든)을 위한 함수 집합 ㅇ 표준 데이터형 - windows.h 라는 헤더 파일에 typedef로 선언되어 있음 ㅇ 핸들(handle) - 구체적인 어떤 대상에 붙여진 번호, 문법적으로 32비트의 정수값 - 도스 경우 파일핸들만 사용됨 - 윈도우 경우 윈도우 핸들(hWnd)을 붙여 윈도우를 번호로 관리한다. - 문자열보다 정수를 사용하는 것이 훨씬 더 속도가 빠르기 때문에 핸들을 사용 - 핸들은 오로지 구분하기 위한것 ㅇ 핸들의 특징 - 정수값, 대부분의 32비트값 ==> 구분이 목적이기 때문에 적합 - 운영체제가 핸들을 발급, 사용자는 쓰기만 하면된다. - 같은 핸들끼리 정복된 값을 가지지 않는다. - 실제값이 무엇인지 몰라도 된다 ==> 단순한 표식, 핸들형.. 더보기 이전 1 다음