首先在响应鼠标左键的消息的WM_LBUTTONDOWN函数添加两个变量以保存鼠标位置:
CPoint m_OnLBtDownpt,m_OnLBtDownEndpt;
再在WM_LBUTTONMOVE消息响应函数添加如下代码:
CClientDC dc(this);
dc.SetROP2(R2_XORPEN);
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
m_OnLBtDownEndpt=point;
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
然后在WM_LBUTTONUP消息响应函数添加如下代码:
CClientDC dc(this);
m_OnLBtDownEndpt=point;
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
编译后矩形是画出来了,但是画完一松左键后马上又生成另一个矩形(以客户区左上角为新矩形的一个顶点,以鼠标松开左键所在位置为该矩形的另一点),从而画出了两个矩形来了.请问为何会出现第二个矩形啊?如何解决此情况?
CPoint m_OnLBtDownpt,m_OnLBtDownEndpt;
再在WM_LBUTTONMOVE消息响应函数添加如下代码:
CClientDC dc(this);
dc.SetROP2(R2_XORPEN);
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
m_OnLBtDownEndpt=point;
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
然后在WM_LBUTTONUP消息响应函数添加如下代码:
CClientDC dc(this);
m_OnLBtDownEndpt=point;
dc.Rectangle(CRect(m_OnLBtDownpt,m_OnLBtDownEndpt));
编译后矩形是画出来了,但是画完一松左键后马上又生成另一个矩形(以客户区左上角为新矩形的一个顶点,以鼠标松开左键所在位置为该矩形的另一点),从而画出了两个矩形来了.请问为何会出现第二个矩形啊?如何解决此情况?
再次感谢!问题已解决!:)