none
mfc에서 코드상에서 dialog style 지정하는 방법. RRS feed

  • 질문

  • 안녕하세요 ㅎ

    지금은 리소스 화면에서 다이얼로그창->properties -> style 을 지정해주고 있습니다.

    그러다가 이젠 런타임중에 style을 지정해줘야하는데

    찾아보다가 잘 안되서 질문 남깁니다. 다이얼로그창은 create로 생성하고 visual studio 6.0을 사용 중 입니다.

    생성할때 혹은 런타임 중에 style을 disabled로 해주면 되겠는데 답변 주시면 감사하겠습니다.

    2012년 6월 20일 수요일 오전 7:56

답변

  • 현재 윈도우의 스타일은 GetWindowLong 라는 함수를 사용해서 얻을수 있습니다. 이 함수를 사용하여 현재 윈도우의 스타일을 얻은후에
    SetWindowLong 함수를 사용하여 원하지 않는 속성만 제거하시고 다시 설정하시면 됩니다.

    예를들어, 현재 윈도우에서 시스템 메뉴 스타일 (WS_SYSMENU) 를 제거하고 싶다면 아래와 같이 코드를 구성하시면 됩니다.

    // 현재 윈도우의 속성을 얻는다.
    LONG cur_style = GetWindowLong(m_hWnd, GWL_STYLE);

    // WS_SYSMENU 를 제거하고 속성을 다시 설정한다.
    SetWindowLong(m_hWnd, GWL_STYLE, cur_style & ~WS_SYSMENU);

    단순히 윈도우를 비활성화 시킨다는 의미라면 EnableWindow(FALSE); 를 사용하시면 됩니다.

    2012년 6월 20일 수요일 오전 11:03
    중재자