class CMyDlg : public CDialog
{
...
protected:
BOOL m_bLBtnDown;
CPoint m_ptStart;
CArray<CPoint> m_ptArr;
};void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
m_bLBtnDown = TRUE;
m_ptStart = point;
CDialog::OnLButtonDown(nFlags, point);
}void CMyDlg::OnMouseMove(UINT nFlags, CPoint point)
{
m_ptArr.Add( point );
if( m_ptArr.GetSize() == 3 )
{
m_ptArr.RemoveAt( 0 );
}
ASSERT( m_ptArr.GetSize() <= 2 );
CClientDC dc( this );
if( m_ptArr.GetSize() == 2 )
{
dc.SetROP2( R2_XORPEN );
if( m_bLBtnDown )
{
dc.MoveTo( m_ptStart );
dc.LineTo( m_ptArr[0] );
}
}
if( m_bLBtnDown )
{
dc.MoveTo( m_ptStart );
dc.LineTo( point );
}
TRACE1 ( "m_ptArr.GetSize() = %d\n", m_ptArr.GetSize() );
CDialog::OnMouseMove(nFlags, point);
}void CMyDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
m_bLBtnDown = FALSE;
CDialog::OnLButtonUp(nFlags, point);
}
解决方案 »
- 请问一下,在OnCtlColor函数使用CreateFont无法改变字体样式,怎么回事?
- 请教各位大侠!!如何在Activex中获取当前页面的用户身份??
- 这段代码为什么不能在框架中显示图像
- 两个好消息:VC编程经验总结下载以及全文搜索恢复
- 数据传送!
- 问一个关于CreateThread的弱弱问题?
- 可不可以问个硬件问题:硬盘怎么哄哄哄的响,让人挺害怕的......
- 用VC++ 编写一个 可以从一个Excel表里面得到身份证号码,再通过这个身份证号码打开一个文件夹里面的图片
- 请教DirectShow高手:'live source'的问题
- 全局钩子注入,但是API函数却没有被拦截,求大神
- 程序退出异常,达人指点!!
- 用createprocess 打开网页后,如何获取此网页弹出的窗口,请给个思路
pOldBrush = (CBrush*)pDC->SelectStockObject(NULL_BRUSH);
nOldMode = pDC->SetROP2(R2_NOTXORPEN); //或者是XORPEN
pDC->Rectangle(m_ptStart.x, m_ptStart.y, m_ptPre.x, m_ptPre.y); //擦除之前的矩形
pDC->Rectangle(m_ptStart.x, m_ptStart.y, m_ptEnd.x, m_ptEnd.y); //绘制当前的矩形
pDC->SetROP2(nOldMode);
pDC->SelectObject(pOldBrush );
可以参考一下