[WinAPI] CScrollBar 사용법 – 2-2. 횡스크롤 만들기

안녕하세요. 저번 글까지는 스크롤을 만드는 것까지 했는데, 이번 글에서는 약간의 설명과 코드를 바로 첨부해 드리겠습니다. 코드를 하기 앞서 dc와 dcTemp, 그리고 스크롤로 표현 하는 방법을 설명해드리겠습니다.최종적으로 사용자가 보는 dc화면이 있습니다. 이 dc에서 CRect rect를 이용하여 크기를 구합니다.그리고 가로 크기는 10000, 세로는 dc 와 같은 dcTemp를 생성해줍니다. 그리고 dcTemp에 0, 100, 200, … , 9900 같이, 100 위치마다 … Read more

[WinAPI] CScrollBar 사용법 – 2-1. 횡스크롤 만들기

안녕하세요, 저번 글에 이어서 CScrollBar을 이용하여 특정 화면을 만들어 보도록 하겠습니다. 이번 글에서는 아래와 같이, 횡으로 화면이 전환되는 예제를 만들어 보겠습니다. MFC 프로젝트를 하나 생성하신 뒤, Static Control을 추가하시고 아래와 같이 속성들을 설정합니다.빨간색 부분은 무조건 설정 해주셔야하고, 파란색 부분은 꼭 하실 필요 없습니다.(그냥 보기 좋으라고 한겁니다.) 그리고 Static Control을 우클릭 하여 변수 추가를 합니다. 그리고 난 후 아래와 같이 변수 … Read more

[WinAPI] CScrollBar 사용법 – 1. 기초

안녕하세요, CScrollBar의 사용법에 대해 알아보겠습니다.이번 글에서는 CScrollBar를 생성하는 코드만 알아보고 다음 글에서부터 이를 활용하여 화면을 만들어 보도록 하겠습니다. 가로 스크롤을 만든다는 가정하에 아래와 같이 헤더파일에 CScrollBar를 선언합니다. CScrollBar를 생성하는 방법은 아래와 같습니다. CScrollBar의 범위와, 위치, 정보를 설정하는 방법은 SCROLLINFO 구조체를 사용합니다. 그 방법은 아래와 같습니다. CScrollBar의 정보를 얻는 방법은 아래와 같습니다. 위 코드는 CScrollBar 사용하는 방법입니다. 다음 글에서는 이 방법들을 이용하여 사용자가 원하는 화면을 만들어 보도록 하겠습니다.

[Visual C++] CToolTipCtrl 사용법

오늘은 ToolTip에 대해 알아보겠습니다. 툴팁이란 아래와 같이 컨트롤에 마우스 오버를 하면 설명 문구가 나오는 것을 말합니다.해당 기능은 버튼이라던지, 어떤 컨트롤에 대한 표시 설명이나, 컨트롤의 작업에 대한 설명을 적기도합니다. MFC 프로젝트 생성 후 대화상자 헤더파일에 아래와 같이 멤버변수를 선언해주세요. OnInitDialog에 아래와 같이 코딩합니다. 이 상태로 빌드 후 실행하면 해당 컨트롤에 마우스 오버를 하면 툴팁이 표시됩니다. 간단하죠?툴팁은 … Read more

클립보드 텍스트 저장하는 프로그램

작업을 하다보면 Ctrl + C, V를 많이 사용하는데 텍스트가 저장되었음 좋겠다고 생각 해서 만들어본 프로그램 입니다.OS가 32bit면 ClipboardText.exe를 64bit면 ClipboardText64.exe를 실행해주세요 사용자가 PC를 사용하다가 텍스트를 복사를 합니다. 그러면 우측에 프로그램 리스트에 추가가 됩니다. 문자열을 여러 개 복사하면 계속 추가가 됩니다. (중복 문자열은 추가되지 않습니다.) 오른쪽에 추가 된 문자를 선택(Ctrl + C와 같은 작업)하고, 메모장에 Ctrl + V를 … Read more

[WinAPI] MailSlot, 메일 슬롯 사용법

오늘은 프로세스간 통신 방법인 메일 슬롯 사용법에 대해서 알아보겠습니다. 메일 슬롯에 대해 약간의 설명을 하자면, 우체통과 비슷하다고 볼 수 있습니다.아래 그림과 같이 A가 B에게 편지를 보낸다고 할 때, A는 편지를 우체통에 넣고, B는 우체통에서 편지를 찾아가면 됩니다. 이 방식은 매우 편리해서 아래와 같이 A는 우체통에 편지를 여러번 집어 넣을 수 있고, B가 나중에 한번에 찾아갈 … Read more

[MFC] DoModal, Modeless 생성 및 차이

DoModal 부모 대화상자가 자식 대화상자를 호출 하고에 자식 대화상자의 작업이 종료될 때 까지 대기합니다.자식 대화상자가 종료되지 않으면 부모 대화상자에 포커스도 설정되지 않습니다.자식 대화상자가 종료되어야 다음 작업을 수행합니다. Modeless 자식 대화상자의 호출과 관련없이 다음 작업을 수행합니다.자식 대화상자를 여러개 호출 가능하며, 프로그래머가 해제도 해야합니다. 우선 프로젝트 생성을 통해 DoModal과 Modeless를 만들어 보도록 하겠습니다.MFC 프로젝트 생성 후(부모창 생성), 추가 -> 클래스를 눌러 MFC … Read more

[MFC] 단축키 추가 – PreTranslateMessage, Accelerator

오늘은 Accelerator을 사용하여 단축키를 추가하는 방법을 알아보겠습니다. 윈도우 응용프로그램은 PreTranslateMessage에서 키 입력을 포함한 여러 가지 메시지들을 볼 수 있습니다.그 메시지들 중에 키 입력하는 것을 해볼텐데, Accelerator를 사용하지 않으면 매우 복잡해지니 Accelerator을 사용해서 개발해보도록 하겠습니다. MFC프로젝트를 생성하신 후 아래와 같이 Accelerator를 리소스에 추가합니다. 그러면 리소스 뷰에 아래와 같이 추가 됩니다. 여기에 ID, 보조키, 키를 아래와 같이 … Read more

[Visual C++] dll 에러 해결 방법 – mfc140u, VCRUNTIME140.dll 등등

개발자가 아니더라도, 일반 사용자들이 컴퓨터를 사용하다 보면 mfc140u.dll 등의 dll이 없다고 에러가 나타납니다. 이럴 때 참 난감합니다. 어찌어찌 인터넷 상에서 mfc140.dll, VCRUNTIME140.dll을 다운받아도 또 다른 dll이 없다고 하거나 정상적으로 실행 되지 않죠. 이 오류들은 대체 무엇일까요? 그리고 어떻게 하면 해결할 수 있을까요? 우선 해결 방법부터 알려드리자면 여기에서 Visual C++ 재배포 가능 패키지를 설치하면 해결 될 … Read more

[MFC] 컨트롤 색 변경 – Static, Edit, Combo

오늘은 대화상자 컨트롤의 색상을 변경해보겠습니다. Visual C++ 에서는 개발자가 사용할 수 있는 기본 컨트롤들을 제공하는데 해당 컨트롤들은 정말 기본 모양이여서 어딘가 아쉬울 때가 있습니다. 아래와 같이 대화상자 클래스에서 OnCtrColor함수를 추가합니다. 그리고 대화상자에 Static Control, Edit Control, Combo Box를 추가합니다. 그리고 아래와 같이 아이디 값을 설정합니다. 콤보박스의 경우 텍스트를 입력 해줘야 하니까 멤버변수 m_cbTest로 선언합니다. 그리고 OnInitDialog에 아래와 같이 … Read more