2017-02-03 11 views
0

나는 MFC 분할 창 클래스 재정에서 찾고 :WTL CSplitterWindow 크기를 조정하는 방법?

https://www.codeproject.com/Articles/6188/How-to-prevent-resizing-of-views-in-a-splitter-win

내가 WTL CSplitterWindow와 재정의 소스 코드를 테스트했다

하지만 일을하지 않습니다.

CSplitterOverride 대신 CSplitterWindow 클래스를 사용하여 MainFrm.h를 수정했습니다.

프로그램 시작시 "api-ms-win-core-libraryloader-l1-2-0.dll missing."팝업 오류 메시지가 표시됩니다.

windows 7 64bit OS 플랫폼, 32 비트 vs2015 빌드.

class CSplitOverride : public CSplitterWindow 
{ 
public: 
    CSplitOverride() { } 

protected: 
    BEGIN_MSG_MAP(CSplitOverride) 
    MESSAGE_HANDLER(WM_NCHITTEST, OnNcHitTest) 
    END_MSG_MAP() 

public: 
    LRESULT OnNcHitTest(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) 
    { 
    return HTNOWHERE; 
    } 
}; 

편집 : 나는 thickframe 설정을 시도했지만 사용 가능하지 않았습니다. Jan S 솔루션은 내가 원하는 것처럼 작동합니다.

+0

질문이 정확하지 않습니다. 사용자 입력에 응답하지 않기를 원하십니까? 부모 크기를 조정할 때 크기를 변경하지 않으시겠습니까? –

+0

내가하려고하는 것은 비디오 sdk 샘플 응용 프로그램이며, 메인 윈도우의 크기가 조절되지 않고 비디오 프레임 윈도우의 크기를 조정하면 안됩니다. – sailfish009

+0

의존성 워커 (dependency walker)를 살펴보면 핵심 윈도우 dll의 많은 부분이 api-ms-win-core-libraryloader-l1-2-0.dll 또는 다른 버전에 의존합니다. 실행 파일에 직접 의존해서는 안됩니다. –

답변

1

(이 그것이 비록 vs2013에서 컴파일 얻을 수있는 몇 가지 변경이 필요합니다!) excellent tutorial on splitter windows 마이클 Dunns를 살펴 타고 WTL의 소스 포지 사이트에서

This discussion

난 당신이 생각 유용 할 수 있습니다 주 프레임의 크기를 조정할 때 창의 크기를 일정하게 유지하는 방법을 묻는 질문 그것은

atlsplit.h는 다음과 같은 확장 된 스타일을 정의하는 고정 패널의 정렬에 따라

#define SPLIT_RIGHTALIGNED  0x00000004 
#define SPLIT_BOTTOMALIGNED  SPLIT_RIGHTALIGNED 

마이클 던이 말한대로 - "이 세 가지 스타일의 아무도는 왼쪽 인에, 스플리터 기본값을 지정하지 않으면 또는 상단 정렬. "

  • SPLIT_NONINTERACTIVE은 창을
  • m_cxyMin 하드 코드 정렬

    m_wndHorzSplit.SetSplitterExtendedStyle 의해 지정된 창의 최소 크기를 크기 조정에서 사용자를 중지 (SPLIT_BOTTOMALIGNED | SPLIT_NONINTERACTIVE); m_wndHorzSplit.m_cxyMin = 150;

+0

m_vSplit.SetSplitterExtendedStyle (SPLIT_NONINTERACTIVE); 매력처럼 작동합니다! – sailfish009