在mfc分割后的窗口加载的视图,然后新增一个CRectTracker类后视图不见了
本人是一个mfc新手,是这样的,我在一个单文档里切分两个窗口(左右两个),左边对话框右边视图,然后我想在视图那个窗口新增一些功能,就是通过鼠标可以拉伸拖动,拉伸图片,程序是这样的:
我在切分的右窗口基类为CView类 ID名为adc,我在里面新增一些类CRectTracker 对象名为m_RectTracker
还有一个CRect类 对象名为m_rect,我的思路是通过加载视图后在选择CRectTracker画一个矩形框,矩形框的几个拉伸把手选定在视图上,通过拉伸矩形框拉实现拉伸视图,结果视图不见了,
代码如下:
我先选择加载视图
void abc::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: add draw code here add extra code by Richard
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);//创建一个兼容DC
CBitmap bmpBk;
BITMAP bmp;
bmpBk.LoadBitmap(IDB_BITMAP1); //加载位图
bmpBk.GetBitmap(&bmp); //获取位图信息结构体
dcMem.SelectObject(&bmpBk); //选中位图到兼容DC中
// m_RectTracker.Draw(&bmp); // 画矩形框
pDC->BitBlt(0, 0, bmp.bmWidth, bmp.bmHeight, &dcMem, 0, 0, SRCCOPY);//绘制位图
}
然后选择CRectTracker
void abc::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//add extra code by Richard
if(m_RectTracker.HitTest(point)<0) // 画选择框
{
m_RectTracker.TrackRubberBand(this,point,TRUE);
m_RectTracker.m_rect.NormalizeRect();
}
else // 点矩形选择框
{
m_RectTracker.Track(this,point,TRUE);
m_RectTracker.m_rect.NormalizeRect();
}
Invalidate(); //刷新窗口
return; // 由于鼠标被接管,所以可以直接返回。
CView::OnLButtonDown(nFlags, point);
}结果只有矩形框的拉伸把手按下鼠标左键可拖动,拉伸,这是为什么?求大神指教