다른 응용 프로그램의 윈도우에서 응용 프로그램을 작성하고 있습니다 (이것은 OS X에서 코코아로 작성되었지만 일반적으로 운영체제/프레임 워크 문제), 나는 그것이 간단한 대답을 가져야 만하는 것처럼 보이는 문제에 직면하고있다. 그러나 그것은 나에게 절대적으로 미치게한다. 문제는 다음과 같습니다.윈도우 크기 조정 후 그리기 여백 유지
다른 응용 프로그램의 창 내부에 사각형이 그려집니다.이 사각형은 창의 왼쪽 위 및 왼쪽을 기준으로 특정 위치에 있어야합니다. 즉, 내 사각형과 대상 창의 왼쪽 상단 인 & 사이의 여백은 고정 된 상태로 유지). 상대 x, y 좌표를 윈도우의 크기에 대한 백분율로 계산할 수 있는데, 이는 잘 작동합니다. 사각형이 올바르게 나타납니다. 그러나 사용자가 창 크기를 조정하고 새 높이와 너비를 이전 높이 및 너비에 대한 비율을 기반으로 변환을 사용하여 사각형의 크기를 올바르게 조정할 수 있지만 상대 좌표 위치가 손실됩니다. 이제 사각형 좌표가 올바르지 않습니다. (이미지 참조 - 이것은 문제의 거친 모형 임).
image http://img30.imageshack.us/img30/5273/resizeexample.png
지금, 나는 새로운 X를 계산하는 방법을 알아낼 수 없습니다, y는 상단을 기준으로하고 창 왼쪽 좌표. 창이 사각형이 아닙니다. 크기 변경은 다른 응용 프로그램에 의해 제한되지만 가로 세로 비율 너비/높이는 알 수없는 일부 기능에 의해 변경됩니다. 상대적인 y 좌표를 측정 할 때, 윈도우의 크기가 변경되면 백분율이 변경됩니다. 리사이즈 전에
:
윈도우 사이즈 : H => 760 => 546
직사각형 원점 w : 수치,이 같은 보이는 X => 355, Y => (84) (예를 5백46분의 84 = 15.3 높이) 치수 변환 후
의 %
윈도우 사이즈 : H => 1009 => 717
직사각형 원점 승이어야한다 : (x => 474, y => 99와 같은 것으로 측정 할 수 있지만 은, 99/717은 높이 = 13.8 %)를 예측할 수 없습니다.
내가 생각할 수있는 두 개의 창 '측정 값의 모든 비율을 시도했습니다. 또한 원점으로 변환하고 비율을 조정 한 다음 좌표를 이동하는 비율 조정 문제를 피하기 위해 다시 번역한다는 아이디어를 실행했습니다.하지만 어디로 번역해야할지 모르겠습니다. 이것은 아마도 간단한 기하학적/삼각 솔루션을 가지고있을 것입니다. 그러나 얼마나 많은 다이어그램을 그려도 아무런 문제가 발생하지 않습니다. 나는 그들이 올바른 방향으로 나를 가리킬 수 있다면이 문제에 대한 일선 해결책을 지적하는 누군가의 필연적 인 난처함을 받아 들일 것이다.
"다른 응용 프로그램의 창 내부에 사각형을 그립니다 ..."어떻게 그럴 수 있습니까? –
미안하지만, 내가 쓴 것처럼 이상하게 들린다. 나 자신의 창에 직접 그리지 않을거야, 난 그냥 지정 coordiantes (NSWatusow NSStatusWindowLevel로 설정된 수준)를 통해 새 창을 만들고있어. – Winawer