CtrlList에서 컬럼 고정시키기 > MFC Tip

본문 바로가기
사이트 내 전체검색

MFC Tip

CtrlList에서 컬럼 고정시키기

페이지 정보

profile_image
작성자 이즈
댓글 0건 조회 975회 작성일 06-12-27 00:10

본문

CtrlList에서 컬럼을 고정시키려고 하는데 codeguru에 나와 있는 대로 해 보았지만 잘 안됩니다. 방법을 알려주세요.

ListCtrl은 컬럼 크기를 바꾸기 전에 자신의 부모 윈도우에게 통지(notification) 메시지를 보냅니다. 그래서 우리는 이 통지 메시지를 먼저 처리할 수 있는 메시지 핸들러를 만들면 되지요. 이 통지 메시지를 처리하기 위해서는 OnNotify() 함수를 오버라이드하면 됩니다.

BOOL CTestListCtrl::OnNotify(WPARAM wParam, LPARAM lParam,
    LRESULT* pResult)
{
    switch (((NMHDR *)lParam->code) {
    case HDN_BEGINTRACKW :        // 마우스 트래킹시 발생하는 통보 메시지
    case HDN_BEGINTRACKA :        //
          *pResult = TRUE;                  // 컬럼 크기 조절 방지
          return TRUE;                        // 메시지 처리못하게 바로 리턴
    }

    return CTestListCtrl::OnNotify(wParam, lParam, pResult);
}

 이렇게 하면 컬럼 크기 조정을 방지할 수 있습니다. 윈도우 프로그래밍은 대부분의 구조가 메시지 전달방식 구조이기 때문에 모든 컨트롤의 메시지들을 잘 파악하고 있으면 프로그래머 마음대로 이벤트들을 조절할 수 있습니다. MFC를 사용하면 이 메시지들의 흐름을 잘 파악하기 힘듭니다. 왜냐하면이 메시지에 응답하는 콜백함수들이 캡슐화되어 있기 때문이죠. 그래서 API를 공부하면 이 메시지의 흐름을 파악하기 쉽습니다. 어차피 MFC도 API를 객체지향적으로 포장한 클래스이므로 내부적으로는 API 함수와 동일합니다.

댓글목록

등록된 댓글이 없습니다.

Total 172건 8 페이지

검색

회원로그인

회원가입

사이트 정보

컴퓨터 정보,윈도우즈,리눅스,포토샵,3ds
맥스,프로그래밍 강좌팁

접속자집계

오늘
139
어제
569
최대
5,287
전체
636,414
Copyright © www.qdata.co.kr All rights reserved.