내 첫 번째 추측은 Vista와 XP의 '테마'의 차이점입니다. CFrameWnd를 사용하는 경우 상태 막대의 맨 오른쪽에있는 마지막 분할 창에 그리퍼 컨트롤이 있음을 기억하십시오. 따라서, ComCtl32.dll의 변경 사항이이를 설명 할 수있는 것처럼 보이므로 더 작은 rect를 제공합니다. 나는 당신이 이전에했던 것보다 더 작은 rect.Width()를보고 있다고 가정한다. 당신은 작은 X와 Y에 대해서 이야기하지 않고 있습니다. 동시에 당신입니까?
당신이, 당신이 올바른 버전을보고 앱을 배포하거나 매니페스트가 사용하는 버전을 반영하도록 할 수 있습니다해야하는 경우
...
미안 명확한 컷이없는 대답,하지만 주제가 마음에 와서 유일한 이유는 VC6에서 올바르게 그리면 그리퍼가 상태 표시 줄 위에 추가되었거나 상태 표시 줄이 표시되기에 충분했기 때문입니다 ...
사용할 수있는 제안 중 하나는 실행중인 Windows 버전을 감지하고 OS 용 그리퍼를 가정합니다. 그리퍼는 VScroll 막대와 동일한 크기이므로 런타임에 마지막 셀에서 자연스럽게 많은 DLU (또는 픽셀)를 제거하고이를 기반으로 텍스트를 렌더링 할 수 있습니다. 나는 집에 가서 VC6을 작동시켜야하고, 여기에 무슨 말을하는지에 근거하여 어떻게 작동하는지 확인해야 할 것이다. ...
나는 그것이 가지고있는 ComCtl32.dll의 버전을보기 위해 편리하게 Vista VM을 가지고 있지 않다. 기본적으로 설치되어 있지만 그리퍼를 다루기 위해 일부 코드를 넣었을 것으로 추측됩니다.
당신이 완전한 샘플 코드가있는 경우, 그 정말 그렇지 않으면, 나는 나의 오래된 VC6 코드를 생성 한 모든 파고 시작하고 거기에서 갈 필요가 ... 너무 날 일을 더 쉽게 만들 것 ...
흥미로운에게 테스트는 우리가 생각할 수있는 부분에 대해 GetSystemMetrics를 호출하고 시스템마다 시스템이 어떻게 다른지 살펴볼 것입니다. Vista를 "Windows Classic"모드로 전환해도 여전히 동일한 결과가 표시됩니까?
또한 어떤 컴퓨터가 개발자 박스입니까? Vista 또는 XP?
추가 세부 정보가 추가되었습니다. – JProgrammer