#99 Article 1090 Posted at 1996/03/29 23:25:06 by みやちゃん (MAP2821) [WIN.GDI]

Subject: WindowsのGDI

Windows3.1 のGDI操作について疑問に感じたことがあります。

CreateMetaFile(NULL)で作成したDCに座標付きのメタファイル(テキストおよび
他のメタファイルをSetWindowOrgで座標指定して再生したもの)を
更に座標指定して再生、すなわち座標付きメタファイルを座標指定したDCに対して
描画しても、元のメタファイル内の座標情報が優先されてしまうのでしょうか。

データの使い回しを考えると1次イメージ、2次イメージ、印刷イメージの
3段階をとりたいのですが、2次イメージから印刷イメージを作る時に
目的としている座標へ複写されず、印刷イメージの原点に2次イメージが
複写されてしまいます。
これで2日間このプログラムが進行していない・・・・・・・・・

これが仕様なら、1次、2次のイメージをやめてループの中にフォント指定を
入れなければならず、アプリ側のバグなら原因を追求しなければなりません。
(バグと言っても、座標指定だけがコケているので可能性は薄い)
とりあえず〆切なのでループで逃げましたが、予想以上に処理時間食ってるし。

****************************************************************************

でも、これって仕様だとしても、その仕様自体がバグっぽいよなぁ。
挙動を見ていると、メタファイル単位で座標を管理している上に
最終段階で実座標を出すのに個々のデータの座標で置換されている感じ。
素直に考えると、座標付きデータと言えども新しい座標に変換(累積)されるのだが。
中身のデータに座標指定があろうがなかろうが、
1個のメタファイルは1個のイメージなのだから。

それに、SetWindowOrg 自体の挙動も怪しい。
仕様では「旧座標を返す」になっているのにデバッガで返り値を見ると1になってる。

							みやちゃん