728x90
반응형

컴퓨터/Win32-API

총 45개의 포스트

컴퓨터/Win32-API(45)

  1. Win32_API - 아이콘 버튼 (버튼에 이미지를 설정하기)

    서론 Windows 응용 프로그래밍 과정에서 대표적인 컨트롤 중 하나인 버튼을 기본적인 양식대로 만들면 기능은 구현할 수 있으나 시각적으로는 부적합한 경우가 상당히 많습니다. 본문에서는 버튼 컨트롤을 마치 아이콘의 형태처럼 이미지를 씌우는 방법에 대해서 알아보고 사용해보도록 합시다. 버튼을 생성하는 과정이 이해가 안 되면 아래 글을 참조해주세요 Win32_API - 버튼 만들기 서론 수많은 Windows 프로그램들의 Window를 보면 다양한 기능들을 제공하는 버튼들을 많이 보았을 것입니다. 첨부된 그림처럼 Window 프로그램에는 프로그램을 제어할 수 있는 다양한 기능이 존재합 blog-of-gon.tistory.com 우선 이미를 준비합시다. 당연히 버튼에 사용할 이미지를 준비해야 됩니다. 이미지를 ..

    2022.04.08

    컴퓨터/Win32-API

    Commnet

  2. Win32_API - GDI로 자유곡선 그리기3 (비트맵을 저장해서 쓰자)

    서론 지난 글들을 통해서 마우스를 통해 자유롭게 그리고 지우는 과정을 배워봤습니다. 이때 그림을 그린 좌표를 기억해서 계속 다시 그려주는 방식을 채택해서 사용했었습니다. 본문에서는 비트맵을 기억하는 방식을 채택해서 조금 더 쉽게 구현을 하는 방법에 대해서 알아보도록 합시다. 개요 구현 방식은 생각보다 간단합니다. 더블 버퍼링의 개념을 응용해서 사용하면 됩니다. WM_CREATE 과정에서 비트맵을 생성한다. 마우스 클릭 과정들에 대한 처리 전 글들과 유사함 마우스 움직이는 과정의 처리 WM_MOUSEMOVE 이 과정에서 생성한 비트맵에 그림을 그리고 고속 복사의 과정을 한다. WM_PAINT 처리 이 과정또한 이미 기억하고 있는 비트맵을 고속 복사한다. 여러 처리 변수 목록 마우스 상태를 알기 위한 변수 ..

    2022.04.01

    컴퓨터/Win32-API

    Commnet

  3. Win32_API_GDI로 자유곡선 그리기2(지우기/지우개 기능 추가)

    서론 지난 글에서 MS사에서 제공하는 그림판처럼 일종의 Pen을 구현해서 자유롭게 선을 그려봤습니다. 그렇다면 사용자의 의도대로 자유롭게 그려진 선을 지우려면 어떻게 해야 될까요? 크게 두 가지 방법이 있습니다. 특정 동작이 이루어졌을 때 선택된 곳을 배경색으로 칠한다. 특정 동작이 이루어졌을 때 선택된 곳의 선정보를 제거한다. 1번의 경우 간단하게 DC를 얻어 처리할 수 있지만, 무효화 영역이 발생했을 때 원하는 의도와 다르게 동작할 수 있습니다. 2번은 1번보다는 조금 복잡하지만 실제 기록된 그릴 정보를 제거함으로써 조금 더 원하는 의도대로 작동할 수 있습니다. 본문에서는 2번을 이용하여 지우기 기능을 추가해 보도록 하겠습니다. 지난 글의 소스코드를 이용하여 추가하도록 하겠습니다. Win32_API ..

    2022.03.30

    컴퓨터/Win32-API

    Commnet

  4. Win32_API - GDI로 자유 곡선 그리기 (마우스로 글씨 쓰기)

    서론 지난 글들을 통해서 마우스 동작에 대한 Window 운영체제에서의 메시지들을 이해하고, 간단하게 선을 그리는 방법에 대해 알아보았습니다. 본문에서는 몇 가지 추가적인 내용들을 알아보고, 자유곡선 즉 마우스 클릭을 통해 글씨를 써보도록 합시다. 어떻게 연속된 곡선을 그릴까? 지난 글들에서 우리는 GDI API를 통해 직선을 그릴 수 있었습니다. 직선을 어떻게 그렸을까요? 두 가지 함수를 통해 그렸습니다. MoveToEx(memdc, start_pos.x, start_pos.y, NULL); LineTo(memdc, end_pos.x, end_pos.y); 이 방법을 응용하면 간단합니다. 연속적으로 시작점과 끝점을 다시 그려준다면 자유롭게 곡선을 그릴 수 있게 됩니다. 어떻게 구현할지 생각해 봅시다. ..

    2022.03.28

    컴퓨터/Win32-API

    Commnet 1

  5. Win32_API - GDI로 선그리기5(깜빡이는 현상 제거/더블버퍼링)

    서론 지난 글에서 마우스를 이용하여 선을 그려보고 다양한 선들을 계속해서 그릴 수 있는 방법에 대해서 알아보았습니다. 하지만 수많은 선을 그리다 보면 어느 순간부터 화면이 깜빡거리는 현상이 보이게 됩니다. 그리고 많은 선을 그리면 그릴수록 이 현상은 더 자주 보이게 됩니다. 본문에서는 이런 현상에 대해서 알아보고 극복할 수 있는 방법을 알아보도록 합시다. Win32_API - GDI 선그리기4(Vector 활용해서 여러 선 저장하기) 서론 지난 글에서 직접 링크드 리스트를 구현하여 여러 선들의 좌표를 저장하여 선을 그렸습니다. 이런 식으로 하나하나 구현을 하면 공부에는 도움이 되지만, 효율에서는 너무나 떨어지게 됩 blog-of-gon.tistory.com 원인 - 컴퓨터가 일하는 모습을 포착한다. 깜빡..

    2022.03.24

    컴퓨터/Win32-API

    Commnet

  6. Win32_API - GDI 선그리기4(Vector 활용해서 여러 선 저장하기)

    서론 지난 글에서 직접 링크드 리스트를 구현하여 여러 선들의 좌표를 저장하여 선을 그렸습니다. 이런 식으로 하나하나 구현을 하면 공부에는 도움이 되지만, 효율에서는 너무나 떨어지게 됩니다. 본문에서는 C++ STL에서 제공하는 vector클래스를 사용하여 조금 더 간단하게 선들을 저장할 수 있는 방법에 대해서 알아보도록 합시다. Win32_API - GDI로 선그리기3(연속해서 여러 선 그리기) 서론 Win32_API - GDI로 선그리기2 (마우스 동작을 이용해봅시다.) 서론 지난 글에서 MoveToEx와 LineTo 2개의 함수를 이용해서 선을 그려봤습니다. 본문에서는 이 두 함수와 마우스 동작에 따른 처리를 blog-of-gon.tistory.com C++ - STL vector 클래스 (손쉬운 동..

    2022.03.23

    컴퓨터/Win32-API

    Commnet

  7. Win32_API - GDI로 선그리기3(연속해서 여러 선 그리기)

    서론 Win32_API - GDI로 선그리기2 (마우스 동작을 이용해봅시다.) 서론 지난 글에서 MoveToEx와 LineTo 2개의 함수를 이용해서 선을 그려봤습니다. 본문에서는 이 두 함수와 마우스 동작에 따른 처리를 하면서 마우스 동작에 따른 처리방법을 알아보고, 다양한 형태 blog-of-gon.tistory.com 지난 글에서 간단하게 마우스 클릭으로 직선을 그려보았습니다. 하지만 추가적으로 선을 그리지 못하고 하나의 선만을 그릴 수 있었습니다. 이유는 다시 WM_PAINT 메세지를 처리할 때 마지막의 직선만을 그리기 때문입니다. 이 문제를 해결하기 위해서는 여러방법이 있습니다. 본문에서는 여러 선들의 좌표들을 기억해서 다시 그리는 방법으로 해결을 해보도록 합시다. 여러 선들의 좌표를 기억해야 ..

    2022.03.18

    컴퓨터/Win32-API

    Commnet

  8. Win32_API - GDI로 선그리기2 (마우스 동작을 이용해봅시다.)

    서론 지난 글에서 MoveToEx와 LineTo 2개의 함수를 이용해서 선을 그려봤습니다. 본문에서는 이 두 함수와 마우스 동작에 따른 처리를 하면서 마우스 동작에 따른 처리방법을 알아보고, 다양한 형태로 선을 그려보도록 합시다. 참조 - 이전 글 Win32_API - GDI로 선그리기1 서론 GDI에서는 다양한 방법으로 선 및 곡석을 그릴 수 있도록 지원해 주고 있습니다. 본문에서는 가장 기본적인 선 그리기를 위한 방법에 대해서 알아보고 사용해 보도록 합시다. 대표적으로 사 blog-of-gon.tistory.com 우선 마우스 메시지에 대하여 알아보자. 마우스의 동작에 따라 윈도에서는 다양한 알 림메 세지가 발생하게 됩니다. 자세한 내용은 MSDN의 마우스 내용을 살펴보시면 좋을 것 같습니다. 본문에..

    2022.03.15

    컴퓨터/Win32-API

    Commnet

  9. Win32_API - GDI로 선그리기1

    서론 GDI에서는 다양한 방법으로 선 및 곡석을 그릴 수 있도록 지원해 주고 있습니다. 본문에서는 가장 기본적인 선 그리기를 위한 방법에 대해서 알아보고 사용해 보도록 합시다. 대표적으로 사용되는 MoveToEx와 LineTo 함수를 사용하여 그려보고 동작원리에 대해서 알아보도록 합시다. 우선 그러 봅시다. 앞서 말한 것과 같이 MoveToEx함수와 LineTo 함수를 통하여 선을 그릴 수 있습니다. 기본적으로 WM_PAINT에서 같이 작성하면 선이 그려지는 것을 볼 수 있습니다. case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps); MoveToEx(hdc, 50, 50, NULL); LineTo(hdc, 100, 50); EndPaint(..

    2022.03.14

    컴퓨터/Win32-API

    Commnet

  10. Win32_API - 색상표 만들기(스크롤 바 추가하기)

    서론 색상표에 스크롤 바를 추가해서 조금 더 효율적으로 색상을 변경을 해보도록 합시다. 기존 버전 Win32_API - 실습 - 색상표 만들기 서론 지금까지 배운 포스트들을 정리하면서 간단하게 RGB 개념을 적용해 3가지 인풋 박스에 R G B 순으로 숫자를 입력하고 색상을 표여주는 프로그램을 만들어 보도록 합시다. 전체 프로젝트 파일 blog-of-gon.tistory.com 추가할 내용 Win32_API - 막대바 컨트롤(Scroll Bar) 서론 다양한 응용프로그램에서 Scroll Bar의 사용빈도는 매우 높습니다. 본문에서는 Scroll Bar를 Win32를 통해 만드는 방법과 정보에 대해서 알아보고, 간단한 실습 코드를 작성해 보겠습니다. 0. 사전 blog-of-gon.tistory.com G..

    2022.03.13

    컴퓨터/Win32-API

    Commnet

G91개발일지

Gon91(지구일)

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

TODAY :

YESTER DAY :

TOTAL :

1 2 3 4 5
728x90
반응형