나는 그 안에 자식 창문이있는 창문이 있습니다. 자식 창은 약 1000 픽셀의 수직 공간을 차지합니다. 그러나 사용자가 항상 사용할 수있는 세로 공간이 1000 픽셀 인 것은 아니며 500 픽셀 또는 600 픽셀 정도의 작은 크기를 가질 수도 있습니다.win32에서 윈도우의 뷰포트를 변경하려면 어떻게해야합니까?
나는이 창을 500 픽셀 높이로 표시 할 수 있고 전체 내용을 보려면 창을 위아래로 스크롤 할 수 있기를 원합니다. 창은 항상 높이가 500 픽셀이어야하지만 내부의보기가 변경되어야합니다.
어딘가에 스크롤 막대를 추가하여 사용자가보고 싶은 부분을 선택할 수 있다고 가정합니다. Windows는 일반적으로 창 내용을 높이 0에서 높이 500으로 페인트합니다. 대신에 "높이 250에서 높이 750까지 페인트"라고 말하면 어떻게됩니까?
SetViewportOrgEx
등의 기능으로 뷰포트를 설정할 수 있다는 것을 알고 있지만 이러한 기능에는 장치 컨텍스트가 필요합니다. 언제 "영구적"으로 유지하려면 해당 기능을 호출해야합니까? 창에서 WM_PAINT 메시지를 받으면 전화를합니까? 아니면 다른 시간에? 그리고 그 가족의 어떤 기능을 사용하고 싶습니까?
편집 추가 : 실제로 하위 창의 위치를 변경하고 싶지 않습니다. 즉, 동일한 위치에 머물러 있어야하며 변경할 수있는 유일한 것은 창으로의보기입니다.
감사합니다.
실제로 하위 창의 위치를 변경하고 싶지는 않습니다. 즉, 동일한 위치에 머물러 있어야하며 변경할 수있는 유일한 것은 창으로의보기입니다. – Colen
이렇게 보이는 것은 결국 우리가해야 할 일입니다. 감사! – Colen
그래 ... 내가 말할 수있는 한, 뷰포트를 변경하면 일반적으로 자식 창이 그려지는 위치가 변경되지 않는다. 적어도 당신이 윈도우 프로 시저에서 바꿀 경우에는 그렇지 않다. 플레이 할 DC. 뷰포트는 채색 된 재료의 위치를 결정하지만 자식 창은 그 재료와 별개의 것으로 보입니다. – cHao