int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;// TODO: Add your specialized creation code hereCClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
//CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
//ShowCaret();
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
CreateCaret(&bm);
ShowCaret();
return 0;
}
这是在窗口创建一个插入符,为什么用固定插入符CreateSolidCaret()可以在窗口显示插入符,而用位图却无法显示该位图插入符?
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;// TODO: Add your specialized creation code hereCClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);
//CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
//ShowCaret();
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
CreateCaret(&bm);
ShowCaret();
return 0;
}
这是在窗口创建一个插入符,为什么用固定插入符CreateSolidCaret()可以在窗口显示插入符,而用位图却无法显示该位图插入符?
问题出在这里.你的是局部变量.当程序运行到}后,局部变量就被释放了.与其相关联的资源也被释放了.所以,你的图片资源也被释放了.肯定是看不到了
CBitmap *bm或是CBitmap bm设置成成员变量;
OnCreate()函数结束后,它也被析构,此时tm的成员变量也全部消失。为什么他却可以实现?请指点。。
OnCreate()函数结束后,它也被析构,此时tm的成员变量也全部消失。为什么他却可以实现? 请指点。。
问题出在这里.你的是局部变量.当程序运行到}后,局部变量就被释放了.与其相关联的资源也被释放了.所以,你的图片资源也被释放了.肯定是看不到了
CBitmap *bm或是CBitmap bm设置成成员变量;