728x90
반응형

Win32API

총 9개의 포스트

Win32API(9)

  1. WindowsAPI - 실습 - 그림판 구현하기 3 ( UI부분 구현 )

    서론 본문에서는 지난 포스트에서 작성한 구조에 컨트롤 버튼 등을 만드는 UI작업을 진행해 보도록 하겠습니다. 2개의 토글 버튼과 색상을 제어할수 있는 색상판을 만들어 보도록 합시다. 이전 글 WindowsAPI - 실습 - 그림판 구현하기 2 ( 프로젝트 구조 설계 및 시작) 서론 지난 포스트에 이어서 그림판 구현하기 본격적인 소스코드 구현을 시작해 보도록 합시다. 기본적으로 소스코드를 구현할 틀을 만들어 보도록 합시다. 지난 글 WindowsAPI - 실습 - 그림판 구현 blog-of-gon.tistory.com 버튼 만들기 2개의 버튼을 만들도록 하겠습니다. 그리기 기능과 지우기 기능이 있는 2가지의 버튼을 만들기 위해 하나의 함수를 만들었습니다. //버튼생성하기 void CreateButton(c..

    2022.04.15

    컴퓨터/Win32-API

    Commnet

  2. Win32_API - 실습 - 마우스 좌표값 받아오기

    서론 지난 실습 프로그래밍을 하던 과정 중 도형, 문자, 컨트롤 등을 Window 좌표상에 표시하기 위해서 상당 부분 불편한 점이 많았습니다. 생각한 좌표를 구하기가 힘들기 때문이었습니다. 본문에서는 간단하게 마우스 커서가 위치한 좌표를 얻어올 수 있는 프로그램을 만들어 보도록 하겠습니다. 0. 준비 과정 - 마우스 입력에 대한 이벤트 마우스가 응용프로그램위에서 커서의 형태로 움직이고, 클릭하는 등 다양한 동작에 대해서 이벤트 메시지가 발생하게 됩니다. 본문에서는 그중 마우스가 움직이는 과정에서 생기는 이벤트와 좌표를 얻어 출력하는 프로그램을 만드려고 합니다. 자세한 내용은 아래 링크를 참조하세요. 마우스 입력(키보드 및 마우스 입력) - Win32 apps 이 섹션에서는 시스템에서 애플리케이션에 마우스..

    2022.03.01

    컴퓨터/Win32-API

    Commnet

  3. Win32_API - 실습 - 색상표 만들기

    서론 지금까지 배운 포스트들을 정리하면서 간단하게 RGB 개념을 적용해 3가지 인풋 박스에 R G B 순으로 숫자를 입력하고 색상을 표여주는 프로그램을 만들어 보도록 합시다. 전체 프로젝트 파일을 확인하고 싶으시면 Github을 참조해 주세요. 0. WinMain 프로그램을 시작하는 WinMain 부분을 작성합니다. 프로그램의 메인이 윈도에 대한 설정과 메시지 루프 부분을 만들어 줍니다. int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { //윈도우 창 구조체 정의 및 적용 WNDCLASSEXW wcex; wcex.cbSize = s..

    2022.03.01

    컴퓨터/Win32-API

    Commnet

  4. Win32_API - 리소스를 통해 메뉴바 추가하기

    서론 지난 포스트에서 리소스 파일과 리소스 헤더 파일을 만들고 메뉴바를 편집하였습니다. 본 포스트에서는 리소스 파일을 실제 프로그래밍에 적용해 보고 사용해 봅시다. 1.resource.h 추가하기 메인 cpp에서 리소스를 사용하기 위해서는 헤더파일을 추가해야 됩니다. 지난 포스트에서 만든 리소스 헤더파일을 추가합시다. #include "resource.h" 2.Window 구조체에 메뉴 등록하기 이제 wMain에서 윈도우 구조체를 정의하는 곳에 진입하여 메뉴바를 사용할 것이지 확인합시다. //윈도우 창 구조체 정의 및 적용 WNDCLASSEXW wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWnd..

    2022.02.23

    컴퓨터/Win32-API

    Commnet

  5. Win32_API - 리소스(Resource)

    서론 Windows 프로그래밍을 하면 리소스를 많이 다루고 사용하게 됩니다. 이 리소스는 다양한 아이콘 마우스 커서 메뉴 등의 디자인을 손쉽게 할 수 있도록 도와주는 녀석입니다. 본문에서는 리소스에 대하여 알아보고 초기 리소스를 사용하기 위한 준비를 해보도록 하겠습니다. VisualStudio사용을 권장합니다. 리소스를 효율적으로 잘 사용하기 위해서는 VisualStudio를 사용하시면 보다 손쉽게 사용할 수 있습니다. 1. 리소스 추가해보기 VisualStudio를 들어가서 프로젝트 디렉터리를 확인하면 그림과 같이 있습니다. 여기서 Resource Files에 '리소스 추가'를 해보도록 합시다. 다양한 종류의 리소스가 보이는데 우선 "Menu"를 선택하여 리소스를 추가해 봅시다. 그러면 프로젝트 디렉터..

    2022.02.22

    컴퓨터/Win32-API

    Commnet 1

  6. Win32_API - 여러개의 버튼 처리

    서론 지난 포스트를 보면 단순하게 하나의 버튼을 만들고 WM_COMMAND 메시지와 함께 wParam으로 BN_CLICKED라는 인자가 들어오면 동작을 하게 하였습니다. 만약 2개 이상의 버튼이 생기고 각각의 버튼을 눌렀을때의 처리를 다르게 하고 싶다면, 해당 방법으로는 문제점이 발생하게 됩니다. 어떤 버튼을 클릭했는지에 대한 처리가 되어있지 않기 때문입니다. 본문에서는 이런 내용들을 해결하기 위한 방법을 공부해 보도록 하겠습니다. 생성하는 과정에서 식별자 부여하기 우선 CreateWindow 함수를 통해 생성하는 과정에서 식별자의 부여가 필요합니다. 다시 말하자면 이 버튼의 ID값은 몇이다 라고 부여해주어야 한다는 말입니다. 이 인자는 9번째 인자인 HMENU를 통해 부여하게 됩니다. 예를 들어 2개의..

    2022.02.21

    컴퓨터/Win32-API

    Commnet

  7. Win32_API - WM_PAINT(창 그리기)

    서론 윈도 응용 프로그래밍은 메시지 루프에 진입하여 운영체제의 명령어를 하나씩 처리하는 방식으로 프로그래밍됩니다. 본문에서는 가장 대표적이며, 어떻게 보면 필수적인 WM_PAINT 메시지에 대하여 알아보도록 하겠습니다. 창을 그리는 메세지 윈도 운영체제는 GUI 기반으로 이루어져 있고, 동시에 여러 개의 프로그램이 실행될 수 있습니다. 간단하게 사용자가 2개의 프로그램 A와 B를 사용 중이라고 가정해 봅시다. 두 프로그램은 많은 운영체제 안에서 다양한 환경으로 존재할 수 있습니다. 최대화 모드 (화면 전체에 표시) 최소화 모드 (작업 표시줄에 표시) 창 모드 (창의 형태로 부분에 표시) 윈도에서 프로그램을 사용한 경험이 있다면 위의 내용을 알고 있을 것이라 생각합니다. 그렇다면 상황을 부여해 보도록 합시..

    2022.02.08

    컴퓨터/Win32-API

    Commnet

  8. Win32_API - 프로그램 동작 구조

    서론 본격적인 실습을 하기 전 기존에 간소화한 실습용 소스코드가 어떤 식으로 동작하는지 이해할 필요가 있습니다. 프로그램이 어떻게 동작하는지 이해를 해야만 어느 부분에 프로그래밍을 할 수 있을지 알게 됩니다. WinMain함수와 WndProc콜백 함수 소스코드를 동작시키면 WinMain함수가 동작하여 메시지 루프에 들어가게 됩니다. 이 과정 이후 WndProc함수에 작성한 내용들이 운영체제의 콜백 함수에 의해 실행되고 처리되게 됩니다. 정말 정말 간단하게 표현하면 위의 그림과 같습니다. WinMain에서 처음 윈도를 생성하고 초기 값을 가진 후 메시지 루프 영역에 도달하게 됩니다. while (GetMessage(&msg, nullptr, 0, 0)) { TranslateMessage(&msg); Dis..

    2022.01.29

    컴퓨터/Win32-API

    Commnet

  9. Win32_API - 시작 (초기 소스 해석해보기)

    시작 - VisualStudio를 통해 프로젝트 만들어보기 위 그림처럼 VisualStudio를 통해 손쉽게 Win32 API를 통한 프로그래밍 기본 소스코드를 얻을 수 있습니다. 본 포스트에서는 기본으로 생성된 소스코드의 구성과 각각의 역할에 대해서 알아보겠습니다. 얻어지는 소스코드는 아래에 있습니다. 버전마다 다를 수 있으니 참고하세요! 더보기 // WindowsProject.cpp : 애플리케이션에 대한 진입점을 정의합니다. // #include "framework.h" #include "WindowsProject.h" #define MAX_LOADSTRING 100 // 전역 변수: HINSTANCE hInst; // 현재 인스턴스입니다. WCHAR szTitle[MAX_LOADSTRING] ; ..

    2022.01.27

    컴퓨터/Win32-API

    Commnet

G91개발일지

Gon91(지구일)

91년생 공학엔지니어의 개발일지

TODAY :

YESTER DAY :

TOTAL :

1
728x90
반응형