int CSunxin5View::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// CClientDC dc(this);
CBitmap pBitmap ;
pBitmap.LoadBitmap(IDB_BITMAP1);
CreateCaret(&pBitmap);
ShowCaret();
return 0;
}
在上面函数中,由于 pBitmap 对象析构,于之关联的资源销毁,所以创建的图形插入符不能显示出来。但是为什么下面这段程序的快捷菜单又能显示出来??如果按上面那么理解的话应该资源也销毁了啊
void CSunxin5View::OnRButtonDown(UINT nFlags ,CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
ClientToScreen(&point);
pPoppup->TrackPopMenu(……)
CView::OnRButtonDown(UINT nFlags ,CPoint point)
}
还有很多时候在函数内会定义CClientDC dc这个对象,这个对象不是在函数结束时也要析构销毁的吗?为什么图像还会显示呢?这几个问题困扰了我很久了,求解脱!!谢谢 }
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// CClientDC dc(this);
CBitmap pBitmap ;
pBitmap.LoadBitmap(IDB_BITMAP1);
CreateCaret(&pBitmap);
ShowCaret();
return 0;
}
在上面函数中,由于 pBitmap 对象析构,于之关联的资源销毁,所以创建的图形插入符不能显示出来。但是为什么下面这段程序的快捷菜单又能显示出来??如果按上面那么理解的话应该资源也销毁了啊
void CSunxin5View::OnRButtonDown(UINT nFlags ,CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1);
CMenu* pPopup=menu.GetSubMenu(0);
ClientToScreen(&point);
pPoppup->TrackPopMenu(……)
CView::OnRButtonDown(UINT nFlags ,CPoint point)
}
还有很多时候在函数内会定义CClientDC dc这个对象,这个对象不是在函数结束时也要析构销毁的吗?为什么图像还会显示呢?这几个问题困扰了我很久了,求解脱!!谢谢 }
你自己在这一行打上断点试试呗,看看菜单消失和这一行被执行谁先谁后八~