• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Windowsプログラミング リージョンについて)

Windowsプログラミング リージョンについて

このQ&Aのポイント
  • Windowsプログラミングでリージョンについて学びましょう。
  • CombineRgn関数やGetClipRgn関数についても理解しましょう。
  • DeleteObject関数によるリージョンの削除方法も確認しましょう。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

『新たに』というより演算結果を格納するための受け皿です 新たにハンドルを作成する機能まで盛り込んでいないためあらかじめハンドルを作成しておかないといけない訳です GetClipRgnは現在アプリケーションによって設定されているリージョン領域を取得する関数です 設定は SelectClipRgnで行います このあたりの解説は VC++付属の MSDNなどで確認可能ですよ

sizum
質問者

お礼

ありがとうございました^^。

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

CombineRgnの第1引数ですが これは演算結果を受け取るためのハンドルだからです 2つのリージョンの演算結果を まったく別のリージョンに設定することも可能なのです DeleteObjectは 引数に与えられたハンドルに関連付けされたオブジェクトを削除します hRgn1とhRgn2は別空間に配置されていますので hRgn1にhRgn2の領域が含まれていても hRgn1でアクセスしているなら操作可能です 最後の別件ですが 必要です CreateEllipticRgnで作成したハンドルと関連するオブジェクトは必ず削除するようにしましょう 繰り返し実行すると リソースを食いつぶしてしまい最悪の場合Windwosが不安定になり再起動をさせられる羽目になる可能性があります

sizum
質問者

補足

CombineRgnはあらたにオブジェクトを生成するのではなく、あらたに結合した演算結果を格納する(こうゆう表現でいいのか分かりませんが)関数みたいな感じで覚えればいいのでしょうか? GetClipRgnも現在設定されているリージョンの演算結果を受け取るような考え方でいいのでしょうか?

関連するQ&A