标签:
//CreateSolidCaret 插入符
BOOL CreateCaret( HBITMAP pBitmap );
int CXuexi2View::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CView::OnCreate(lpCreateStruct) == -1)
		return -1;
	//调用Windows处理函数对应的create
	// TODO: Add your specialized creation code here
/*	CClientDC dc(this);
	TEXTMETRIC tm;
	dc.GetTextMetrics(&tm);//得到窗口字体信息
	CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);//用于表示插入符的消息、/8经过试验以后验证是最好的
	ShowCaret();
*/
	//	CreateSolidCaret(1,10);//自己定义窗口的插入符的大小
	//	ShowCaret();
        //CreateCaret();用于创建位图插入符
//CBitmap bitmap;
	bitmap.LoadBitmap(IDB_BITMAP1);
	CreateCaret(&bitmap);
	ShowCaret();
     return 0;
}
这样写是调不出来位图的 应为位图是定义成了局部变量 发生完之后调用析构函数 所以位图显示不出来
正确的做法是这样写 把bitmap的申明放到view的头文件中进行申明,这样析构发生时会全部运行完再次发生析构
int CXuexi2View::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
//调用Windows处理函数对应的create
// TODO: Add your specialized creation code here
/*	CClientDC dc(this);
TEXTMETRIC tm;
dc.GetTextMetrics(&tm);//得到窗口字体信息
CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);//用于表示插入符的消息、/8经过试验以后验证是最好的
ShowCaret();
*/
//	CreateSolidCaret(1,10);//自己定义窗口的插入符的大小
//	ShowCaret();
//CreateCaret();用于创建位图插入符
//CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP1);
CreateCaret(&bitmap);
ShowCaret();
return 0;
}
标签:
原文地址:http://www.cnblogs.com/llforeverlove/p/4655000.html