2017-10-05 7 views
0

먼저 내 CMFCToolbar를 영구적으로 만듭니다. m_wndMyToolBar.SetPermament (TRUE); // 닫기 버튼을 제거합니다.플로팅 CMFC 툴바를 움직일 수 없도록 만드는 방법

이제 어떻게 사용자가 영구 CMFC 툴바를 이동할 수 있습니까?

CMFCToolbar를 서브 클래스하려고했지만 ON_WM_MOUSEMOVE & ON_WM_NCMOUSEMOVE는이 클래스 내부에서 호출되지 않습니다. 모든 toolsbars를 해결하려면

답변

0

당신의 CMainFrame 클래스에서

EnableDocking(CBRS_ALIGN_ANY); 

를 제거합니다.

단일 막대를 처리하려면 FloatControlBar을 덮어 쓰고 FALSE를 반환하십시오.

특수 바를 떠 다니는 것을 막기위한 가장 좋은 방법은 OnBeforeFloat을 덮어 쓰고 FALSE를 반환하는 것입니다. 이 함수는 FLoatControlBar에 의해 호출됩니다.

마지막으로 아무 것도 방지하지 않으려면 WM_NCHITTEST을 캡처하는 것입니다. 그것을 처리하고 HTCLIENT 또는 결국 HTNOWHERE을 반환하십시오.

+0

그 반대입니다. 툴바를 왼쪽, 오른쪽, 아래쪽에 "고정"하고 싶지 않습니다. 이제 도구 모음 도킹을 방지하기 위해 OnBeforeDock()을 사용합니다. 그러나 툴바는 여전히 움직일 수 있습니다. –

+0

응답 할 추가 부분이 추가되었습니다. – xMRi

+0

WM_NCHITTEST 처리는 도킹 된 모드에서 작동하지만 여전히 부동 모드로 움직일 수 있습니다. : ( –

관련 문제