Win API/3. Control
-
컨트롤의 활용 - 1인 채팅방 만들기 ( 엔터 키, 탭 키, 스크롤 기능 )Win API/3. Control 2021. 4. 1. 10:56
개발 환경은 Visual Studio 2008 이번 글에서 만들어볼 내용은 컨트롤의 기본적인 내용을 가지고 1인 채팅방을 만들어 볼 것이다. 아래는 이 프로그램의 완성된 내용의 결과 화면이다. 1. 기본 기능 만들기 소스 파일 위의 프로그램을 실행시키고, 글을 계속 입력하다보면 불편한 점이 나타난다. 스크롤에 관련한 것인데, 아래의 그림을 보자. 2. 스크롤 기능 만들기 위의 창을 보면 채팅창의 화면( 리스트 박스 )에서 입력한 글의 수가 채팅창 화면의 크기를 넘어서면, 스크롤의 기능이 활성화 되면 좋겠다. 위의 채팅창의 화면에서 18줄을 넘어서면, 스크롤의 기능이 활성화 되야 한다. 스크롤 기능을 만들기 위해서는 아래의 SetScrollPos 함수를 이용해야 한다. 아래 [그림 1]에서는 스크롤 바에서..
-
리스트 박스Win API/3. Control 2021. 3. 31. 23:05
개발 환경은 Visual Studio 2008 아래와 같이 여러 줄에 걸쳐 나열된 것을 리스트 박스라고 한다. 이 리스트 박스를 이용하여, 선택된 리스트의 이름을 위의 윈도우 캡션에 저장하는 프로그램을 만들어 보자. 리스트 박스를 생성할 시에, LBS_NOTIFY 가 있어야 한다. 그 이유는 사용자가 목록 중 하나를 선택하였을 때, 부모 윈도우로 통지 메시지를 보내도록 하는 기능이 있어야 하기 때문이다. LBN_SELCHANGE는 사용자에 의해 선택이 변경되었을 때를 의미한다. 프로그램 실행결과 소스 파일
-
에디트 박스Win API/3. Control 2021. 3. 31. 23:04
개발 환경은 Visual Studio 2008 아래의 그림의 입력 칸을 에디트 박스라고 한다. 32KB로 제한되며, 그 이상이 되면 Edit control out of space 에러가 발생한다. 이 에디트 박스에 글이 입력되면, 위의 윈도우 창의 캡션에 입력된 내용을 저장하도록 하는 프로그램을 만들어 보자. 이 내용을 시작하기에 앞서, GetWindowText 함수와 SetWindowText 함수에 대해 살펴볼 필요가 있다. 윈도우 창을 띄우는 기본 소스 파일을 가지고 구현을 하도록 한다. WM_CREATE에서 에디트 박스를 생성한다. 에디트 박스에 글이 입력이 되면, 글의 내용을 캡션에 저장한다. EN_CHANGE는 문자열이 변경되었을 때를 의미한다. 프로그램 실행결과 소스 파일
-
체크 박스Win API/3. Control 2021. 3. 31. 11:20
아래의 글에서, 윈도우 창을 띄우는 소스를 가지고 와서 구현할 것이다. 작업 환경은 Visual Studio 2008 designatedroom87.tistory.com/122?category=892369 프로젝트 생성 및 윈도우 창 띄우기 Visual Studio 2019를 실행시킨다. 그리고 새 프로젝트 만들기를 선택한다. Windows 데스크톱 마법사를 선택한다. 적당한 프로젝트 이름을 정하고 만들기를 선택한다. 애플리케이션 종류는 데스크톱 애 designatedroom87.tistory.com 아래의 UI 모양이 여기에서 만들 내용이다. 다음과 같이 열거자를 정의하고, 전역 변수를 선언한다. 전역 변수가 필요한 이유는 체크 박스의 상태가 체크가 되어 있지 않은 상태에서 선택이 되면 체크 상태로 만..
-
버튼Win API/3. Control 2021. 3. 29. 10:45
개발 환경 : Visual Studio 2008 버튼을 하나 생성해서, 버튼이 클릭 되면 "클릭되었다"라는 메시지를 출력하는 프로그램을 만들어 보자. 버튼도 하나의 윈도우이다. 다만, 자식 윈도우이다. 그러므로 버튼의 생성은 CreateWindow함수를 이용한다. 버튼이나, Text, 에디트 박스, 리스트 박스, 콤보박스 들은 전부 자식 윈도우 이다. 즉, 컨트롤은 윈도우이기는 하지만 홀로 사용될 수 없으며, 부모 윈도우의 차일드로 존재해야 한다. 차일드 컨트롤은 보통 부모 윈도우가 만들어 질때, 즉, WM_CREATE메시지가 발생했을 때 만든다. 버튼을 생성한 후에 CreateWindow함수는 생성된 차일드 컨트롤의 윈도우 핸들을 리턴하는데, 핸들이 필요한 경우 별도의 변수에 핸들값을 저장해 두면 된다..