私はアプリケーションを別のアプリケーションのウィンドウに描画しています(これはOS XのCocoaですが、一般的に問題はオペレーティングシステム/フレームワークの問題)、私はそれが単純な答えを持つべきであるように見える問題にぶち当たっていますが、それは私を絶対に狂ってしまいます。ここに問題があります:ウィンドウのサイズ変更後に描画の余白を維持する
私は、ウィンドウの左と上の特定の位置にある別のアプリケーションのウィンドウ内に矩形を描画します(つまり、私の四角形とターゲットウィンドウの最上部の余白は、固定されたままである)。ウィンドウのサイズのパーセンテージとして必要な相対x、y座標を計算できます。これは正常に機能します。長方形が正しく表示されます。しかし、ユーザーはウィンドウのサイズを変更して、古い高さと幅に対する新しい高さと幅の比率に基づく変換を使用して矩形のサイズを正しく変更できますが、相対位置が失われます:矩形の座標が正しくない(画像を参照してください - これは問題の概略です)。
image http://img30.imageshack.us/img30/5273/resizeexample.png
さて、私は新しいのxを計算する方法を見つけ出すことはできません、yはトップに相対して、ウィンドウの左座標。ウィンドウは正方形ではありません。そのサイズ変更は他のアプリケーションによって制約されますが、アスペクト比の幅/高さは未知の機能によって変化します。必要なy座標を相対的に測定すると、ウィンドウのサイズが変更されたときにパーセンテージが変化します。例えば= 15.3 546分の84のx => 355、Y => 84(:リサイズ前
:
ウィンドウのサイズ:H => 760、W => 546
長方形の原点数値、それは次のようになります高さの%)
リサイズ後:
ウィンドウサイズ:H => 1009、W => 717
矩形の原点は次のようになりますか? (私はx => 474、y => 99のように測定できますが、はと予測できません; 99/717は現在高さの13.8%です)。
私は考えることができる2つのウィンドウの測定値のあらゆる比率を試しました。私は原点に変換し、スケーリングし、座標を移動するスケーリングの問題を避けるために翻訳するというアイデアを実行しましたが、どこに翻訳するのかはわかりません!これには幾つかの単純な幾何学的/三角法の解決策があるかもしれませんが、いくつの図を描いても何も起こりません。私はここに正しい方向に私を向けることができれば、この問題に対するいくつかの1行の解決法を指摘する誰かの避けられない恥ずかしさを受け入れることを望んでいます!
「別のアプリケーションのウィンドウ内に長方形を描画しています...どうしていますか? –
申し訳ありませんが、私はそれを書いたように奇妙に聞こえます。私は自分のウィンドウに直接描画していない、私は指定されたcoordiantes(レベルをNSStatusWindowLevelに設定してNSWindow)上に新しいウィンドウを作成しています。 – Winawer