在lButtonDown,OnMouseMove,LButtonUp中处理
解决方案 »
- 请教C++高手,关于冒泡排序的实现,没有错误提示,但就是编译不出来,麻烦高手检查一下,在线等,另加分!
- 用VS2008打不开微软自带的例子Visual C++ 2008 Feature Pack???
- 窗体上的控件怎么拖拽改变大小?
- 外部定义问题
- 郁闷!有谁知道byte[2]低字节 byte[3]高字节,如何转换为int型?
- 请大家说说<<Visual C++技术内幕>>第四版好,还是第五版好
- 为什么我用的Combo Box不能下拉?问题很菜!包涵。
- 线程的恢复,高手帮忙解答
- MFC CDatabase CDBException m_nRetcode 都是 -1 为什么 如何能获取对应的错误代码?
- ?????是OpenGL好呢还是Director好呢?
- 请问那有vc2以下版本可以下载的,100全送。
- 一个不好说出口的大大的问题?(都可以进来的)
使用 CRectTracker 类(用法见 MSDN)方法2:
自己处理鼠标的 down,move,up 消息,在窗口上绘制
请问那里有?
BOOL m_bDown;
.....
LButtonUp()
{
m_bDown=FALSE;
pDC->DrawFocusRect(CRect(m_StartPoint,m_EndPoint));///如果想在操作完后,屏幕上还保留选择的区域时,就不要执行本行。
}
LButtonDown()
{
m_StartPoint=point;
m_EndPoint=point;
m_bDown=TRUE;
}
MouseMove()
{
pDC->DrawFocusRect(CRect(m_StartPoint,m_EndPoint));
m_EndPoint=point;
pDC->DrawFocusRect(CRect(m_StartPoint,m_EndPoint));
}
中忘了加上 if(m_bDown) 条件
1、CMyView::OnLButtonDown(...)
{
SetCapture();
m_bFlag=true;
}
2、CMyView::OnMouseMove(...)
{
if(GetCapture()==m_hWnd && m_bFlag)
{
// 使用异或模式划线 (在同一位置绘制两次,线会被擦除)
CDC* pDC=GetDC();
pDC->SetROP2(R2_NOTXORPEN);
// erase old line/shape 这里的细节要靠你自己了 :-)
..........
// draw new line/shape
......... ReleaseDC(pDC);
}
...............
}3、CMyView::OnLButtonUp(...)
{
bFlag=false;
ReleaseCapture();
...............
}