- 01: 名前:Licca投稿日:2000/03/29(水) 12:14
- Shapeオブジェクトのローカル座標系の点をPageオブジェクトなどの座標系の点に変換するXYToPageメソッドの使い方について教えてください。
構文
shpObj.XYToPage x, y, xprime, yprime
要素 説明
shpObj 対象となる Shape オブジェクトです。このオブジェクトの座標系からポイントを変換します。
x shpObj の座標系における x 座標です。
y shpObj の座標系における y 座標です。
xprime Page または Master オブジェクトの座標系における x に対応する x 座標です。
yprime Page または Master オブジェクトの座標系における y に対応する y 座標です。
とあるのですが、どうやって使ったら良いのか分かりません。
バージョンは2000です。
- 02: 名前:管理人投稿日:2000/03/30(木) 11:18
- 2000からのメソッドですね。
使ったこと無いからわかりましぇ〜ん。
じゃ肥やしに成らないので後ほど調べてみます。
現在年度末人海戦術モードの管理人・・・
- 03: 名前:管理人投稿日:2000/04/04(火) 12:03
- 亀レスですが・・・
グループ内の図形位置(PinX,PinY)をページ座標系に置き換える場合の例で説明します。
サンプル?は
http://visio-square.hypermart.net/cgi-bin/upload/image/003.lzh [source] [check]
です。
グループ図形A(pshpObj)の中に図形B(shpObj)があると仮定して、
BのEventXFModからCALLTHIS("thisdocument.test")で呼び出します。
Public Function test(shpObj As Visio.Shape)
Dim shpX As Double
Dim shpY As Double
Dim pagX As Double
Dim pagY As Double
Dim pshpObj As Visio.Shape
'親のシェイプを得る
Set pshpObj = shpObj.Parent
'自分のXY
shpX = shpObj.Cells("PinX")
shpY = shpObj.Cells("PinY")
'親座標系からページ座標系への変換
pshpObj.XYToPage shpX, shpY, pagX, pagY
'自分のuser定義セルに変換結果を書き込む
shpObj.Cells("User.x").Formula = pagX * 25.4
shpObj.Cells("User.y").Formula = pagY * 25.4
となります。
文才が無いのでコードの羅列になちゃいましたが分かるでしょうか?
(´ー`)y−~~ でわでわ
- 04: 名前:管理人投稿日:2000/04/04(火) 14:29
- サンプルの説明?を忘れてました・・・
サンプルはグループ図形中の丸の位置(PinX,PinY)をページ座標系に変換しています。
#フ〜、自分で「文字間を全角で・・・」と御願いしているのに
#コピー&ペーストで書き込んじまった
- 05: 名前:Licca投稿日:2000/04/12(水) 08:52
- 大変遅くなりましたが、解答ありがとうございました。(_ _)
グループ図形が更にグループ図形を含んでいる場合などは処理を二重に行うのでしょうか?
それにしても管理人さんはvisioのことは何でもご存知ですね。(@@
- 06: 名前:管理人投稿日:2000/04/12(水) 09:17
- > グループ図形が更にグループ図形を含んでいる場合などは処理を二重に行うのでしょうか?
XYToPage、TransformXYTo、XYFromPageの各メソッドを図形構造や求める値によって使い分ける必要が
ありますが、基本的にはLiccaさんの考え方でOKだと思います。
> それにしても管理人さんはvisioのことは何でもご存知ですね。
ROMってる人の中には私より凄い人が居ると思いますよ・・・
旧VISIO社の方や、サポートセンターの方とかネ(^_^)
(´ー`)y−~~ でわでわ
- 07: 名前:ほし投稿日:2002/07/29(月) 16:14
- C++のラップ関数をお使いの方で、getParent()−−>XYToPage()
を使用する方法をご存知のかたはその使用方法を教えていただきたいのですが・・・
どちらか、いませんか?
■トップに戻る リロード 単独スレ表示
|