728x90
반응형

컴퓨터/Win32-API

총 45개의 포스트

컴퓨터/Win32-API(45)

  1. Win32_API - wsprintf사용(printf 같은 기능을 쓰기 위한 함수)

    서론 Windows 프로그래밍을 하던 도중 문득 TextOut함수로 정수를 출력하기에는 상당히 번거로운 일이 발생합니다. 이 번거로운 일을 손쉽게 극복할 수 있도록 C언어 표준 함수인 wsprintf를 알아보도록 합시다. wsprintf 함수 이 함수는 C언어 표준 함수로 쉽게 설명하자면 특정 공간에 서식화된 문자열을 담아주는 녀석입니다. C언어에서 흔히 사용했던 printf의 경우 콘솔 창에 문자열을 출력합니다. wsprintf의 경우 특정 변수에 문자열을 출력합니다. 함수의 원형을 보면 다음과 같습니다. wsprintfW( _Out_ LPWSTR, _In_ _Printf_format_string_ LPCWSTR, ...); 이전 포스트에서 설명했다 시피 W는 유니코드를 의미하므로 무시하고 설명하도록 ..

    2022.02.21

    컴퓨터/Win32-API

    Commnet

  2. Win32_API - 2개의 버튼을 이용해서 숫자 변화시키기

    서론 지난 포스트들을 통해서 간단한 예제 실습을 해보도록 하겠습니다. 2개의 버튼을 클릭했을 때 숫자를 증가 또는 감소시켜봅시다. 1. 전역 변수의 설정 계속해서 숫자를 기억하기 위해 전역 변수 하나를 선언합니다. int num; 2.UP / DOWN 버튼 만들기 숫자를 제어하기 위한 컨트롤 버튼 2개를 만듭니다. case WM_CREATE: CreateWindowW(L"button",L"UP", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 20, 100, 25,hWnd, (HMENU)100 , hInst,NULL); CreateWindowW(L"button", L"DOWN", WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 20, 60, 100, 2..

    2022.02.21

    컴퓨터/Win32-API

    Commnet

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

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

    2022.02.21

    컴퓨터/Win32-API

    Commnet

  4. Win32_API - WPARAM 과 LPARAM

    서론 Windows 응용 프로그래밍 중 다양한 메시지를 콜백 함수에서 처리합니다. 이 콜백 함수에는 윈도의 메시지와 2종류의 파라미터 값을 통해서 어떠한 메시지에 어떤 키가 눌렸는가 또는 어디 위치에서 클릭했는가 등을 판단하고 처리하게 됩니다. 오늘은 이 파라미터가 어떤 방식으로 들어오는지 알아보도록 합시다. WPARAM과 LPARAM Windows 응용 프로그래밍 중 콜백 함수의 선언 부분을 보면 다음과 같습니다. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 여기서 서론에서 말한 것과 같이 두 가지의 파라미터 변수로 윈도 메시지와 함께 다양한 상태의 정보를 제공해 줍니다. 과거부터 지금까지 Window 운..

    2022.02.20

    컴퓨터/Win32-API

    Commnet

  5. Win32_API - 버튼 연동하기

    서론 지난 포스트에서 생성한 하위 윈도인 버튼을 클릭하면 반응을 하기 위한 간단한 예제를 알아보도록 합시다. WM_COMMAND: 윈도우윈도 창에서 클릭을 한다던지, 특정 키보드를 누른다면 기본적으로 윈도에서는 WM_COMMAND라는 메시지를 보냅니다. 이 메시지 안에 어떤 처리를 할 것인지 입력한다면, 만든 버튼에 기능을 부여할 수 있게 됩니다. 그렇다면 버튼이 클릭된 것을 어떻게 알 것인가 ? 아무런 입력이나 WM_COMMAND를 생성한다는 것을 이해했습니다. 그렇다면 어떻게 버튼이 눌렸는지 알 수 있을까요? 우선 메시지를 처리하는 콜백 함수를 살펴볼 필요가 있습니다. LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lP..

    2022.02.19

    컴퓨터/Win32-API

    Commnet

  6. Win32_API - 버튼 만들기

    서론 수많은 Windows 프로그램들의 Window를 보면 다양한 기능들을 제공하는 버튼들을 많이 보았을 것입니다. 첨부된 그림처럼 Window 프로그램에는 프로그램을 제어할 수 있는 다양한 기능이 존재합니다. 이를 컨트롤이라 부르며 가장 대표적이고 익숙한 컨트롤 중 하나가 '버튼'입니다. 대표적인 컨트롤 종류 button scrollbar edit listbox combobox CreateWindow함수로 버튼을 만들자 버튼 또한 윈도의 일종입니다. 우리가 만드는 메인 윈도의 하위 윈도의 개념으로 적용이 됩니다. 따라서 윈도를 생성하는 함수인 CreateWindow함수를 통해 만들어집니다. 함수의 원형을 보면 다음과 같습니다. CreateWindowW( lpClassName,//생성할 클래스 이름 lp..

    2022.02.19

    컴퓨터/Win32-API

    Commnet

  7. Win32_API - 문자열 출력해보기(TextOutW / TextOutA)

    서론 기존에 배웠던 지식들을 활용해 Windows 응용 프로그래밍에서 문자열을 출력하기 위한 함수를 알아보고 활용해 보도록 합시다. 문자를 출력하기 위한 함수 TextOutA / TextOutW 사실 두 녀석은 동일한 역할을 하는 함수입니다. 문자열을 윈도우 프로그래밍 안에 출력하기 위한 함수입니다. 다만 마지막 A와 W는 유니코드를 사용할 것이냐 아스키 코드를 사용할 것이냐입니다. 함수의 원형을 살펴보면 아래와 같습니다. BOOL TextOutW( [in] HDC hdc, [in] int x, [in] int y, [in] LPCWSTR lpString, [in] int c ); BOOL TextOutA( [in] HDC hdc, [in] int x, [in] int y, [in] LPCSTR lpSt..

    2022.02.15

    컴퓨터/Win32-API

    Commnet

  8. Win32_API - 문자 자료형 (유니코드와 아스키코드)

    서론 Windows 응용 프로그래밍에서는 편의성을 위해 기본 자료형을 여러 가지 형태로 재정의해서 사용합니다. C언어를 공부했던 분들이라면 아스키 코드에 대해서 들어보았을 것입니다. 하지만 현재 Windows 응용 프로그래밍에서는 기본적으로 유니코드를 기본적으로 사용하기를 권장하는데요. 본문을 통해 유니코드와 아스키코드를 이해하고 어떤형태로 표현이 되는지 알아보도록 하겠습니다. 아스키코드 아스키 코드는 C언어를 만든 미국에서 정의하고 있는 자신들의 모국어를 표기하기 위한 표준의 언어입니다. 1byte로 문자를 표현하며 알파벳과, 다양한 기호들을 256가지 표현이 가능합니다. 유니코드 세계 각지에서 프로그래밍이 사용되며 아스키코드로는 다양한 언어들을 표현하기 힘들어졌습니다. 이런 많은 언어들을 호환시키기 ..

    2022.02.13

    컴퓨터/Win32-API

    Commnet

  9. Win32_API - WM_PAINT(창 그리기)

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

    2022.02.08

    컴퓨터/Win32-API

    Commnet

  10. Win32_API - 그래픽 개요

    Window 프로그래밍에서 그래픽 요소의 비중은 크다! 오늘날 대표적인 개인 컴퓨터(PC)의 운영체제는 Window입니다. 도대체 왜 Window가 대중적인 운영체제로 자리 잡았을까요? 바로 GUI 기반의 운영체제이기 때문입니다. GUI(Graphics User Interface)는 시각적인 형태로 사용자에게 정보를 전달합니다. 컴퓨터를 배우지 않은 일반 사용자도 손쉽게 접근할 수 있게 되기 때문입니다. 그렇다면, Win32 프로그래밍을 배우는 것은 Windows용 프로그램을 만드는 것입니다. GUI 기반의 프로그램을 짜는 것이 합리적일 것입니다. 일반 사용자도 손쉽게 사용할 수 있는 것이 Window의 장점이니까요! 그래서 Win32 API에서는 수많은 그래픽을 다루는 여러 API를 제공합니다. 본문에..

    2022.02.07

    컴퓨터/Win32-API

    Commnet

G91개발일지

Gon91(지구일)

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

TODAY :

YESTER DAY :

TOTAL :

1 2 3 4 5
728x90
반응형