1.问题描述
利用c++实现用鼠标点击任意位置,在此位置绘制矩形。并且给两个矩形重叠部分,涂上颜色加以区分。具体效果如下图所示:
2.关键代码
此程序关键之处在于对鼠标行为的捕获,至于怎么求出两个矩形的重叠部分就更简单了。MFC框架有一个CRect类,这个类有一个IntersectRect()函数可以很容易的求出,两个矩形重叠部分,IntersectRect()具体用法见IntersectRect百度百科。
1 BOOL CMFCApplication2Dlg::PreTranslateMessage(MSG * pMsg) 2 { 3 if (pMsg->message == WM_LBUTTONDOWN)//左键按下 4 { 5 if (Rect_count == 2) 6 { 7 Invalidate(); 8 Rect_count = 0; 9 } 10 startRect = true