본문 바로가기

API Programming15

윈도우 클래스 & 윈도우 객체 윈도우 클래스 정보 윈도우 클래스의 종류 시스템 전역 클래스(System global class) 운영체제가 부팅될 때 등록되며 주로 컨트롤을 만들 때 사용된다. Button, edit, scrollbar, listbox, 등이 그 예이며, 따라서 버튼 윈도우를 만들고 싶다 면 등록된 “button”이라는 클래스명으로 참조해서 생성하면 된다 초기 컨트롤 윈도우 클래스 이다. 응용 프로그램 전역 클래스(Application global class) 주로 DLL에 의해 등록되며 다른 프로그램에서 사용 될 수 있다. 추가 컨트롤 윈도우 클래스 이다. 응용 프로그램 로컬 클래스(Application local class) 응용 프로그램 자신이 메인 윈도우나 차일드 또는 커스텀 컨트롤을 만들기 위해 프 로그램 상.. 2024. 3. 6.
윈도우 핸들 - 코드 //04_윈도우 핸들.cpp #include // API 함수 사용 #include #include #include //_tprinft한글지원 int main() { HWND hwnd = FindWindow(0, TEXT("계산기")); //검색창에서 계산기를 먼저 실행 if (hwnd == 0) { printf("계산기를 먼저 실행\n"); return 0; } TCHAR msg[256]; wsprintf(msg, TEXT("핸들 : %d"), (int)hwnd); _wsetlocale(LC_ALL, _T("korean"));//_tprinft한글지원 _tprintf(TEXT("%s\n"), msg); //범용(_tprintf사용시 한글지원안됨) return 0; } #include #include #.. 2024. 3. 6.
윈도우 핸들(Window Handle) 윈도우 핸들(Window Handle) BOOL ShowWindow(HWND hWnd, int nCmdShow) BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint); BOOL GetWindowRect(HWND hwnd, LPRECT lpRect); API 함수들은 객체를 제어하기 위한 목적으로 제공되며 위에서 제시한 함수들은 그 중 윈도우를 제어하기 위한 목적의 함수이다. 따라서 첫번째 인자가 대상의 윈도우 핸들인점은 당연하다. 따라서 어떠한 객체를 제어하려면 반드시 핸들이 필요하고 내가 만든 윈도운 핸들은 바로 얻을 수 있다. 윈도우 핸들 얻기 HWND FindWindow(LPCTSTR lpCalssName, .. 2024. 3. 6.
Window 윈도우 생성 과정 윈도우 생성 단계 전에 배웠던 WinMain 함수에서 하는 가장 중요한 일은 매인 윈도우를 생성하는 일이다 기존의 C언어 방식의 Console Application은 콘솔창을 통해서 사용자로 부터 입력을 받고 출력물을 내보낸다. 하지만 Window Application 콘솔창이 생성되지 않는다. 사용자 로부터 입력을 받거나 출력물을 내보내기 위해서 윈도우를 생성해야 한다. 윈도우를 생성하는데는 다음과 같은 과정을 거친다. ⑴ 윈도우 클래스 만들기 윈도우를 만들기 위해서는 윈도우 클래스를 먼저 만들어야 한다. 윈도우 클래스는 윈도 우의 특징(배경색, Icon, 커서등)을 정의하는 구조체이며 winuser.h에 아래와 같이 정의되 어 있다. 또한 만들어진 윈도우 클래스는 시스템에 등록하여야만 사용할 수 있다.. 2024. 3. 5.
WinMain 코드 //0305_1.cpp #pragma comment (linker, "/subsystem:windows") //전처리로 콘솔 환경에서 윈도우 환경으로 변경 ! #include #include //WINAPI == __stdcall로 자동 메크로 마우스 올려서 확인 ! int WINAPI _tWinMain(HINSTANCE hInst, HINSTANCE hPrev, LPTSTR lpCmdLine, int nShowCmd) { MessageBox(0, TEXT("Hello,API"), TEXT("FIRST"), MB_OKCANCEL | MB_ICONQUESTION); //고급 -> 구성속성 -> 문자집합에서 확인 !(현재는 유니코드가 디폴트값) - 인텔리센스확인(MessageBox) == MB //MB_OK.. 2024. 3. 5.
WinMain이란? WinMain #include #include int WINAPI _tWinMain( HINSTANCE hInst, HINSTANCE hPrev, LPTSTR lpCmdLine, int nShowCmd) { MessageBox(0, TEXT("Hello,API"),TEXT("First"), MB_OK); return 0; } 순서대로 살펴보도록 하자, 헤더파일,시작점,리턴타입과 인자, Messagebox 함수 로 구성되어있다. 헤더 파일 첫 줄을 살펴보게 되면 windows.h가 #include 포함되어있다. windows.h 헤더 파일에 모든 API함수의 원형과 사용하는 상수들이 정의 되어있다.(특별한 경우 제외) tchar.h 파일은 범용타입을 사용하기 위한 헤더이다. 시작점 리턴 타입과 인자 hIn.. 2024. 3. 5.
API(Application Programming Interface) 란? API API(Application Programming Interface)의 약자이다. 윈도우즈에는 응용 프로그램을 위한 함수를 제공하는데 이것을 API라고 한다. API는 특정 시스템을 위한 함수 집합을 이르는 일반명사이며 그 중의 하나가 윈도우 API이다. Win32API를 기반으로 공부해도 64비트로 쉽게 포팅할 수 있기 때문에 API 위주로 공부한다. 그림에서 보면 HardWare는 대표적으로 CPU가 존재하고 Windows Kernel 은 우리가 흔히 아는 Window Os를 의미한다. API는 Windows Kernel 상단에서 확인해볼수 있다 여기서 옆에있는 DirectX와 OPENGL등은 언리얼,유니티 엔진 같은 3D엔진에도 사용된다 Application을 하나의 집이라고 생각한다면 AP.. 2024. 3. 5.