すみません。
ユーザーがランダムな順番で入力した四角形の4つの頂点座標のCPoint型(x,y座標を保持)の変数の中から
四角形の左上の頂点がどれかを判定したいのですが
うまい方法が思いつきません。

1番左 かつ 1番の上の座標を求めれば良いだけジャン…と思っていたんですが

//CPoint cp0, cp1, cp2, cp3には既にx,y座標が代入済みとする

//四角形の左上座標がどれか4つの中からを決める
CPoint tmp;
tmp = cp0;
if ( tmp.x >= cp1.x ) if ( tmp.y >= cp1.y ) tmp = cp1;
if ( tmp.x >= cp2.x ) if ( tmp.y >= cp2.y ) tmp = cp2;
if ( tmp.x >= cp3.x ) if ( tmp.y >= cp3.y ) tmp = cp3;
return tmp;//左上座標を返す

長方形だとこれで問題なさそうなんですが、例えば極端に歪んだ平行四辺形とかだと
左から2〜3番目の頂点が左上頂点だったり(例:上底、下底が水平で下底が思い切り左に寄っている)
上から2〜3番目の頂点が左上頂点だったり(例:右辺、左辺が垂直で右辺が思い切り上に寄っている)
等のケースに対応できません。