質問: pathtoregion(hdc);で繰り返し同じhrgnで生成したら、 hrgnのオブジェクト自体はまた生成されるのでしょうか?それともリージョンの演算結果が変わるだけでしょうか? このソースはメモリリークをおこしているでしょうか? pathtoregionはどのような動作をしているのでしょうか? 分かる方教えてください。 (いい文章の表現方法がわからなかったため直接疑問点を書いてみました。文章へたですみません。)
回答: hrgn = hrgn = pathtoregion(hdc); このコードは全く問題なく実行されるはずですが。つまり上のコードは hrgn = pathtoregion(hdc); hrgn = hrgn; と同じことです。hrgnにそのまま自身の値をコピーしているだけで、同じパスからリージョンを二回以上生成しているわけではありません。 もしリージョンを二回以上生成したらどうなるかというご質問なら、win32sdkのヘルプに "after pathtoregion converts a path into a region, windows discards the closed path from the specified device context. " とありますので、二回目の関数コールでエラーになると予想できます。実際に二回呼び出してみれば確認できると思います。