본문 바로가기

old drawer/C, C++, MFC

[MFC] GetStyle(), ModifyStyle()을 사용한 윈도우 스타일 변경

< GetStyle(), ModifyStyle()을 사용한 윈도우 스타일 변경 >

// GetStyle함수로 현재 적용된 스타일을 알아낼 수 있으며,

// ModifyStyle함수로 특정 스타일을 추가 또는 제거할 수 있습니다. ^^

// (SetStyle함수나 DeleteStyle함수가 없고, 대신 ModifyStyle함수가 있는 겁니다.)

 

DWORD GetStyle( ) const;

리턴값 : 윈도우의 스타일, 해당 스타일을 AND마스크연산으로 구할 수 있다.

BOOL ModifyStyle(

   DWORD dwRemove,

   DWORD dwAdd,

   UINT nFlags = 0

);

dwRemove 에는 제거하고 싶은 스타일들을 비트연산자 중 OR(|)연산자로

여러개 묶어서 넣을 수 있으며,

dwAdd에는 추가하고 싶은 스타일들을 비트연산자 중 OR(|)연산자로

여러개 묶어서 넣을 수 있습니다.

 

<사용 예제>

 

    DWORD dwStyles=m_TreeCtrl1.GetStyle();

    // TVS_HASLINES 나 TVS_HASBUTTONS 속성을 가지고 있다면...

    if ((dwStyles&TVS_HASBUTTONS) || (dwStyles&TVS_HASLINES))

    {

        // 트리컨트롤에서 TVS_HASLINES 와 TVS_HASBUTTONS 속성을 제거한다

        m_TreeCtrl1.ModifyStyle(TVS_HASLINES | TVS_HASBUTTONS, 0);

 

    }else{  // TVS_HASLINES 와 TVS_HASBUTTONS 속성, 둘 다 가지고 있지 않다면...

        // 트리컨트롤에서 TVS_HASLINES 와 TVS_HASBUTTONS 속성을 추가한다

        m_TreeCtrl1.ModifyStyle(0, TVS_HASLINES | TVS_HASBUTTONS);

    }

 <출처 : 네이버 지식인>