Study/MFC

[MFC] MFC 에서 Grid를 사용해보자 1 (MFC Grid Control)

2022. 11. 3. 20:44
목차
  1. 소스 다운로드 및 기본 설정

MFC 개발 환경에서는 기본적으로 Grid(또는 Data Grid)를 지원하지 않습니다.

 

그렇게 하여 많은 개발자들로 인해 MFC에서 Custom Control 형식으로 많은 Grid Control이 나왔지만 그 중에서 가장 많이 쓰이는 Grid Control 중 하나인 "MFC Grid Control"을 소개합니다.

 

 

MFC Grid control 2.27

A fully featured MFC grid control for displaying tabular data. The grid is a custom control derived from CWnd

www.codeproject.com

 

간단한 사용법을 알아봅시다.

 

소스 다운로드 및 기본 설정

홈페이지에서 "Download Grid Control Source and Demo"를 클릭하여 다운받습니다.

 

우리에게 필요한 폴더는 GridCtrl_src 와 NewCellTypes 입니다.

(NewCellTypes는 Grid Control 에서 Cell에서 사용할 수 있는 새로운 타입의 Cell입니다.)

(사용 하신다면 필요하고 사용하지 않으신다면 필요하지 않습니다.

 

MFC 프로젝트를 만들고 위에서 받은 두개의 폴더를 가지고 와서 소스에 추가 합니다.

 

이렇게 추가 후 바로 빌드를 하게 되면

많은 오류를 도출하게 됩니다.

 

먼저 설정을 해야합니다.

구성 속성 - C/C++ - 일반 - 추가 포함 디렉터리 에 .\을 추가합니다.

 

이제 소스 코드를 수정할 차례입니다.

 

이 CGridCtrl이 만들어지는 시기에는 CMemDC라는 클래스가 존재하지 않았었나봅니다.

그래서 지금은 API(afxcontrolbarutil.h)에 공식으로 들어있으나 이 컨트롤에서는 이것을 사용하기 위해 이름을 바꾸어줍니다.

CMemDC.h 파일을 열어서

이름 바꾸기를 하여 MyCMemDC 또는 자신이 원하는 이름으로 바꾸어줍니다.

 

그 후 빌드를 하게 되면

이렇게 4가지의 주요 오류가 뜹니다.

먼저 GetVersionExW는 사실 지금은 Deprecated가 되어 사용하지 않는 것이 좋으나 여기서는 그냥 무시하도록

#pragma warning(disable:4996)으로 무시하도록 합니다.

각 해당 함수 위쪽에 넣어줍니다.

// GridCtrl.cpp 파일
#pragma warning(disable:4996)
UINT GetMouseScrollLines()
{
	// 생략 ...
}

// GridCell.cpp 파일
#pragma warning(disable:4996)
CGridDefaultCell::CGridDefaultCell()
{
	// 생략 ...
}

 

그 후에 GridCtrl.cpp의 7번째 줄에 슬래시(/)를 하나 더 붙여줍니다.

 

이후에 빌드를 하게 되면

최신 버전의 MSVC를 사용하시는 분은 ON_WM_TIMER의 인자 알람이 뜰 것이고 그렇지 않으신다면 안뜨실 겁니다.

 

이게 최신으로 와서 OnTimer의 인자가 UINT에서 UINT_PTR로 바뀌었습니다.

void CGridCtrl::OnTimer(UINT nIDEvent)

↓↓↓↓↓↓

void CGridCtrl::OnTimer(UINT_PTR nIDEvent)

// 헤더 파일도 동일하게 UINT_PTR로 인자를 바꾸어줍니다.

이렇게 바꾸고 빌드를 하면

 

이렇게 빌드에 성공하여 사용할 준비를 마치게 됩니다.

 

 

다음 시간에는 기본 사용법에 대해서 알아보도록 합니다.

저작자표시 비영리 변경금지 (새창열림)

'Study > MFC' 카테고리의 다른 글

[MFC] MFC 에서 Grid를 사용해보자 2 - 생성 및 설정 (MFC Grid Control)  (2) 2022.11.15
[MFC/Win32 API] 파일의 생성 시간, 접근 시간, 쓰기 시간  (2) 2022.10.15
[MFC] ListBox 컨트롤 (리스트박스)  (0) 2022.10.13
[MFC] Radio Button 컨트롤 (라디오 버튼)  (0) 2022.09.03
[MFC] Check Box 컨트롤 (체크 박스)  (0) 2022.09.03
  • 소스 다운로드 및 기본 설정
'Study/MFC' 카테고리의 다른 글
  • [MFC] MFC 에서 Grid를 사용해보자 2 - 생성 및 설정 (MFC Grid Control)
  • [MFC/Win32 API] 파일의 생성 시간, 접근 시간, 쓰기 시간
  • [MFC] ListBox 컨트롤 (리스트박스)
  • [MFC] Radio Button 컨트롤 (라디오 버튼)
Eskeptor
Eskeptor
Hello WorldEskeptor 님의 블로그입니다.
Eskeptor
Hello World
Eskeptor
전체
오늘
어제
  • 분류 전체보기 (138)
    • Computer (5)
      • Linux (1)
      • Hardware (2)
      • Software (0)
      • Tips (1)
      • Website (0)
    • Mobile (1)
      • Application (1)
    • Study (108)
      • Android (9)
      • C언어 (45)
      • C++ (17)
      • Unity 5(유니티5) (11)
      • Qt 프로그래밍 (2)
      • MFC (12)
      • C#, Winform (12)
    • My World (24)
      • OpenPad(Android) (12)
      • 한글 패치 (1)
      • C#으로 만든 귀요미들 (5)
      • MFC로 만든 귀요미들 (6)
    • Life Goes On (0)
      • Hip Hop (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 기본
  • 자바
  • 슈팅게임
  • 기초
  • MFC
  • 프로그래밍
  • Unity
  • 유니티
  • 강좌
  • Android
  • 초보
  • C++
  • C#
  • 포인터
  • 만들기
  • 메모장
  • 오픈패드
  • c++11
  • 안드로이드
  • openpad
  • 비행기
  • C언어
  • Tetris
  • 알고리즘
  • 배열
  • 자료구조
  • 왕초보
  • 강의
  • Java
  • 테트리스

최근 댓글

최근 글

hELLO · Designed By 정상우.
Eskeptor
[MFC] MFC 에서 Grid를 사용해보자 1 (MFC Grid Control)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.