지금부터는 다양한 색상과 모양의 펜, 브러시를 만들어 볼 텐데 그 전에 윈도우즈에서 색상을 표현하는 방법에 대해 간략하게 알아보도록 하겠다. 도스에서는 WHITE, YELLOW, RED 등의 매크로 상수로 색상을 표현했고 이 매크로들의 실제값은 0~15까지의 정수였었다. 도스에서는 기껏 16색상만 사용할 수 있었으므로 각 색상마다 이름을 줄 수 있었지만 최대 천육백만가지 색상을 사용할 수 있는 윈도우즈 환경에서는 이런 간단한 방법을 사용할 수 없다. 윈도우즈에서는 색상값을 표현하기 위해 COLORREF라는 데이터형을 사용하는데 이는 다음과 같이 정의되어 있다. typedefDWORD COLORREF; 보다시피 COLORREF 형은 부호없는 32비트 크기의 정수형이며 8비트씩 빨간색, 초록색, 파란색의 노..
GDI에 대해서는 앞서 간략하게 소개했었는데, 화면이나 프린터 등의 모든 출력 장치를 제어하는 윈도우즈의 핵심 모듈 중에 하나이다. 즉 출력을 위한 중앙 통제 센터 정도로 생각하면 되는데, 윈도우즈 프로그램에서의 모든 출력은 GDI를 통해서 화면과 프린터로 나가게 되어 있다. GDI 오브젝트란 그래픽 출력에 사용되는 도구를 말하며 펜, 브러시, 비트맵, 폰트 등등이 모든 GDI 오브젝트이다. 사람이 그림을 그릴 때 연필, 붓 등의 도구를 사용하는 것과 마찬가지로 GDI가 그래픽을 출력할 때는 GDI 오브젝트를 사용한다. 즉 선을 그을 때는 펜으로 그리며 면은 브러시로 채우고 문자열을 출력할 때는 폰트를 사용한다는 말이다. GDI 오브젝트를 모아 놓은 것이 DC이며 GDI는 현재 DC에 선택되어 있는 GD..
API 프로젝트를 만들 때는 항상 ApiStart.txt 형태로 소스를 작성해야 하는가? 라고 물어본다면 꼭 그렇지는 않다고 말씀해드립니다. 사실 ApiStart.txt는 간결함을 좋아하는 나의 개성이 강하게 드러난 형태를 띠고 있는데 문법에만 맞다면 다른 형태로 프로젝트의 시작점을 만들어 쓸 수도 있습니다. 타이핑에 자신이 있고 키보드 괴롭히기를 좋아하는 사람이라면 처음부터 죄다 입력하는 방법도 물론 프로젝트를 시작하는 한 방법이기는 하지만 그런 방법을 즈기는 사람을 무척 드물것입니다. 하긴, 실제로 그런 사람을 본적이 있기는 하지만 말이죠. 어떤 형태가 시작점으로 가능하지 살펴보기 위해서는 비주얼 C++의 AppWizzard가 만들어주는 프로젝트는 살펴봐야 합니다. AppWizzard는 사용자의 주문..
APIStart.txt지금까지 실습을 진행하면서 프로젝트를 여러 개 만들어 보았습니다. 그리고 앞오르의 실습을 위해 수백 개의 프로젝트를 더 만들어 보아야 하는데, 이를 위해서는 프로젝트를 어떻게 만드는 것이 빠른 방법인지를 알아보도록 하겠습니다. 지금까지 만든 프로젝트들을 비교해 보면 알겠지만 소스의 WinMain 부분은 거의 변하지 않고 일정합니다. 변하는 것은 오로지 WndProc의 메시지 처리 부분뿐이며 메시지를 어떻게 처리하는지에 따라 프로그램의 기능과 모양이 결정됩니다. 그래서 API로 프로젝트를 만들 때는 처음부터 소스를 입력하는 방법을 쓰지 않으며, 기존에 만들어져 있는 소스를 복사한 후 고치는 방법이 더 많이 사용됩니다. 이런식으로 사용하기 위해선 ApiStat.txt라는 텍스트 파일을 ..
윈도우즈에서는 문자열들도 리소스의 일종으로 취급합니다. 대량의 문자열을 사용하는 프로그램은 리소스에 문자열을 정의해 놓고 필요할 때마다 리소스의 문자열을 읽어와서 사용합니다. 일단 문자열 리소스를 사용하는 간단한 예제를 같이 만들어보도록 하겠습니다. StrTable이라는 이름으로 프로젝트를 만들고 First.cpp 파일을 복사합니다. IpszClass 문자열을 StrTable로 변경하고 리소스 스크립트를 프로젝트에 새로 추가합니다. 이 상태에서 문자열 리소스를 정의하기 위해 리소스 추가 대화상자에서 String Table을 선택합니다. 다음과 같은 문자열 리소스 편집기가 열리는 것을 확인할 수 있습니다. 액셀러레이터 편집기와 유사하게 생겻는데 아직 정의된 문자열이 없기 때문에 비어 있는 것을 확인할 수 ..
아이콘과 커서윈도우즈용 프로그램은 자기 자신을 나타내기 위한 예븐 그림 아이콘을 가지고 있습니다. 또한 작업영역에 마우스가 위치할 때 자기만의 마우스 커서를 갖습니다. 아이콘이나 커서도 리소스의 일종이며 각각의 편집기를 사용하여 제작할 수 있습니다. 앞에서 만들었던 메뉴 예제를 수정하여 아이콘과 커서를 만들어 보도록 하겠습니다.리소스 추가 대화상자에서 이번에는 아이콘을 선택하여 새로운 아이콘을 만듭니다. 다음과 같이 아이콘을 편집할 수 있는 아이콘 편집기를 열어보겠습니다. 6.0과 8.0 모두 비슷한 모양을 띄고 있는데 아이콘 편집기를 사용하는 방법은 그림판을 사용하는 방법과 비슷하여 마우스로 원하는 툴을 선택하여 그리기만 하면 되기 때문에 매우 쉬운 편입니다. 다만 아이콘은 그림판에 비해서 투명색과 반..
프로그램 실행중에 사용자가 메뉴 항목을 선택하게 되면 WM_COMMAND 메시지가 발생합니다. 이때 어떤 메뉴 항목이 선택되었는지를 wParam의 하위 워드로 전달되기 때문에 LOWORD를 읽어 판단할 수 있습니다. 그래서 Menu.cpp의 WndProc에서는 WM_COMMAND 메시지를 받을 경우 switch문으로 다시 LOWORD의 값에 따라 분기를 하여 각 메뉴 항목에 따른 처리를 수행하게 됩니다. ID_FILE_MENU1 메뉴 항목이 선택되었을 경우 메시지 박스를 열어서 메뉴 항목이 선택되었음을 알려주고 ID_FILE_EXIT 메뉴 항목이 선택되었을 경우 프로그램을 종료합니다. 메뉴 항목이 더 늘어난다면 WM_COMMAND의 switch문 안에 case만 계속 늘려가면 됩니다. WM_COMMAND..
메뉴는 윈도우즈용 프로그램이 제공하는 가장 표준적인 사용자 인터페이스입니다. 프로그램의 전체적인 기능을 총괄적으로 제공하는 중요한 기능을 가지고 있습니다. 메뉴의 구조와 기능, 그리고 내부적인 운용방법은 사실 간단한 것이 아니지만 개발툴이 많은 지원을 하고 있기 때문에 프로그래밍하기에는 다른것들과 비교했을 때 쉬운 편이라고 할 수 있습니다. 리소스 작성메뉴가 있는 프로그램을 하나씩 작성하면서 리소스를 만드는 절차와 만들어진 리쇄스를 프로그램에서 사용하는 방법에 대해 차근차근 알아보도록 하겠습니다. 비주얼 C++을 사용하면서 메뉴 리소스를 사용하는 Menu 프로젝트를 다음과 같은 절차를 밟으면서 따라 만들어 보되 비주얼 C++ 6.0과 8.0 컴파일러에서 실습해 볼 수 있다는 점을 알면 됩니다. 본문의 대..
리소스의 소스 파일인 RC파일은 메모장 등의 텍스트 편집기로 작성할 수 있는 텍스트 파일입니다. RC파일에 사용하고자 하는 리소스의 종류, 모양 등을 작성한 다음 이 파일을 리소스 컴파일러로 컴파일하면 RES라는 이진 파일이 생성되며, 이 파일이 링크 과정에서 최종적으로 실팽 하일에 합쳐지게 됩니다. 리소스를 기술하는 RC파일을 작성하는데는 고유의 문법이 적용되며, 이 문법이 비록 쉽기는 하지만 대충이라도 숙지하고 있어야 리소스 스크립트를 작성할 수 있는 것이 원칙입니다. 보통 이를 활용하여 소스코드를 작성하게 되면, 사용된 문법이 직관적이기는 해도 매우 생소하게 느껴질 수 있습니다. 여기에 난이도를 매긴다면 HTML보다 더 쉬운 수준이라 몇가지 예약어만 배우면 누구나 이 스크립트를 작성할 수 있게 됩니..
윈도우즈 API 리소스에 대해 알아보겠습니다. 프로그램은 코드와 데이터로 구성됩니다. 데이터는 프로그램의 처리 대상이며 코드는 데이터를 처리하는 수단입니다. 데이터의 의미를 확장하여 코드가 아닌 모든 것을 데이터라고 규정할 때 비트맵과 아이콘, 메뉴, 문자열 등등 프로그램의 논리와 무관한 모든 것들이 데이터에 속한다고 할 수 있습니다. 이런 것들은 프로그램의 동작을 통제한다기 보단 단순하게 장식으로 사용되는 경우가 다분합니다. 도스 프로그래밍에서는 이런 데이터를 만들고 관리하는 작업이 하나의 과정에 통합되어 있긴하지만 윈도우즈 프로그래밍에서는 별도의 작업 과정으로 분리되어 있습니다.코드의 논리와 무관한 데이터들을 리소스라고 하며 메뉴, 비트맵, 액샐러레이터, 문자열, 아이콘 커서 등등이 이곳에 속합니다...
장애인 복지카드란?장애인에게 주어지는 복지 혜택을 누릴 수 있도록 정부에서 발급하는 카드를 말합니다. 우선 장애인으로 등록이 되어야만 발급받을 수 있으며, 본인의 희망에 따라 장애인등록증 또는 장애인 복지카드 중 하나가 발급됩니다. 장애인등록증신용카드나 직불카드 기능이 없는 등록증을 말한다. 장애인 복지카드신용카드나 직불카드 기능이 부여된 등록증을 말한다. 장애인통합 복지카드기존의 장애인 등록증에 고속도로 통행료 할인 기능이 통합된 카드를 말한다. 장애인 복지카드 발급신청 방법은?장애인등록증이나 장애인 복지카드를 발급받길 희망하는 사람은 '장애인등록 및 서비스 신청서'를 해당 주소지에 맞는 동주민센터에 제출하면 되며, 절차는 다음과 같습니다. 처리절차장애인등록신청 -> 장애인 진단 의뢰서 발급 -> 장애..
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.