いやー、こんにちは、インターセクトレクトです。
インターセプトレクトじゃないんですよ、わかってますね。
つまり、IntersectRect は、ふたつの長方形が重なっている部分を調べるためにあるんですね。
しかも名前に Rect がついているからには長方形は Rect で表現しないといけないんですね。
まあ Rect なんて簡単なものです。
左上の座標が left, top で、右下の座標が right, bottom の構造体なんですね。
傾いた長方形はダメです。
そろそろ関数の使い方を説明しなければならないようですね。
本当なら Rect についてずっと語り続けたかったのですがね。
まあ、こんな風に使ってみてください。
IntersectRect(lprcDst, lprcSrc1, lprcSrc2)
またわけのわからんものが現れましたね。
要するに、lprcDst も lprcSrc1 も lprcSrc2 も、全部 Rect へのポインタなんですよね。
VB で使うんなら ByRef を、C などで使うんなら & を使えっちゅー話です。
それで、これを使ったらどうなるのかって言うと、lprcDst の中に lprcSrc1 と lprcSrc2 が重なっている部分が入るんですね。
左の図で言うと、黒い四角が lprcSrc1 と lprcSrc2 で、赤いのが lprcDst なんですね。
もし全然重なっていないなんて事態になってしまったら lprcDst の全ての成分が0になっちゃいます。
ついでに言うとね、戻り値もその時0になります。
こういうのは図を描くとわかりやすいんだけど、今は図が無いから文字だけで理解してください。
別に理解しなくてもいいけど。
図が増えたんです。よかったですね。
02/08/22追加分
でもやっぱり理解した方がいいと思うので、サンプルを用意しときます。
02/09/09追加分
サンプルを使ってみてわかったんだけど、lprcSrc1 と lprcSrc2 は Rect として変なものだったらいけないんですよね。
例えばね、右側の座標が left に入ってちゃ重なっている場所があってもダメなんです。
点や線になっててもやっぱりダメなんです。
サンプルで試してみてくださいね。