자신의 위치를 얻어오는 GetCurrentDirectory, GetModuleFileName

자신의 위치를 얻어오는 GetCurrentDirectory, GetModuleFileName

실행중인 파일의 현재 작업 디렉토리를 얻어오는 GetCurrentDirectory API부터 알아보도록 하겠습니다. 아래는 GetCurrentDirectory API 함수의 원형입니다. 첫번째 인수를 살펴보면 현재 작업 디렉토리의 경로가 들어갈 버퍼의 길이, 두번째 인수로는 현재 작업 디렉토리 경로를 받을 포인터가 옵니다. 반환값으로는 성공시, 작업 디렉토리 경로의 문자열 길이를 반환하며, 버퍼값이 모자랄경우 버퍼값이 반환됩니다. 실패시 0이 반환됩니다. 한번, GetCurrentDirectory 함수를 통해 현재 작업 … 더 읽기

윈도우를 생성하고 표시하자! CreateWindow, ShowWindow

윈도우를 생성하고 표시하자! CreateWindow, ShowWindow

자 먼저, CreateWindow의 함수 원형을 살펴보도록 합시다. 위 원형을 보면, 첫번째 인수에는 클래스 이름이 옵니다. 전에 RegisterClass 또는 RegisterClassEx 함수로 생성된 ATOM 클래스의 포인터, 혹은 문자열이 이곳에 위치합니다. 두번째 인자로는 윈도우의 타이틀바에 나타나는 제목입니다. 세번째 인자로는 윈도우의 스타일이 들어갑니다. 아래는 dwStyle에 들어갈 수 있는 값들입니다. 코드 설명 WS_OVERLAPPED 디폴트 윈도우. 타이틀 바와 크기 조절이 안되는 경계선을 가진다. 아무런 스타일도 주지 않으면 이 스타일이 적용된다. WS_POPUP 팝업 윈도우를 만든다. WS_CHILD와 함께 쓸 수 없다. WS_CHILD 차일드 윈도우를 만든다. WS_POPUP과 함께 쓸 수 없다. WS_MINIMIZE 최초 최소화된 상태로 윈도우를 만든다. WS_VISIBLE … 더 읽기

윈도우의 캡션을 설정하거나 가져오는 SetWindowText, GetWindowText

윈도우의 캡션을 설정하거나 가져오는 SetWindowText, GetWindowText

자, 먼저 SetWindowText API 함수와, GetWindowText API 함수의 원형부터 살펴보도록 합시다. 제일 처음 SetWindowText의 원형 부터 살펴보자면, 첫번째 인수로는 윈도우 또는 컨트롤의 핸들이 옵니다. 그러나, 다른 응용 프로그램에서 컨트롤의 캡션은 변경할 수 없습니다. 두번째 인수로는 바꿀 문자열을 말합니다. 반환값으로는 실패하면 0이 오며, 성공하면 0이 아닌값이 옵니다. 두번째로 GetWindowText의 원형을 살펴보면, 첫번째 인수로는 윈도우 또는 컨트롤의 핸들이 오며, … 더 읽기

특정 윈도우의 핸들에 메시지를 전달하는 SendMessage

특정 윈도우의 핸들에 메시지를 전달하는 SendMessage

SendMessage API에 대해 알아보기 전에, SendMessage의 함수 원형을 먼저 살펴보도록 합시다. 원형을 살펴보자면, 첫번째 인수로는 메시지를 전달받을 윈도우 핸들을, 두번째 인수로는 전달할 메시지를, 세번째 인수로는 메시지의 부가 정보라고 말할 수 있겠습니다. 전달하는 메시지에 따라 의미가 달라집니다. 네번째 인수 역시도 메시지의 부가 정보이며, 세번째와 네번째에 있는 wParam, IParam의 기본값은 0입니다. 반환값으로는 전달되는 메시지에 따른 처리 결과가 … 더 읽기

키의 상태를 확인하는 GetKeyState, GetAsyncKeyState

키의 상태를 확인하는 GetKeyState, GetAsyncKeyState

우선은 GetAsyncKeyState API에 대해 알아보기 전에 API의 원형을 먼저 살펴봅시다! 반환값은 SHORT형이고, 첫번째 인수로는 가상 키코드가 오며, 우리가 만약 VK_UP을 넘겨주면, 방향키 중 위를 가르키는 키가 눌려있나 눌려있지 않나 확인할 수 있습니다. (키가 눌려진 상태에서는 최상위 비트(0x8000)이 1이 되며,  처음 입력되었을 때는 0x8001 비트가 1이 됩니다.) GetAsyncKeyState의 반환값은 아래와같이 4가지로 나뉩니다.  코드 설명 0 (0x0000) 이전에 누른 적이 없고 호출 시점에서 안눌린 상태 0x8000 … 더 읽기