单文档创建光标:
插入符即光标,它的创建是在窗口创建之后进行的,可以在WM_CREATE消息的响应函数OnCreate中(在创建窗口的代码之后)添加创建插入符的代码。由于MFC AppWizard生成的视图类没有OnCreate函数,所以需要手动添加(添加过程就不说了)
int CDView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//创建设备描述表
CClientDC dc(this);
//定义文本信息结构体变量
TEXTMETRIC tm;
//获得设备描述表中的文本信息
dc.GetTextMetrics(&tm);
//根据字体大小,创建合适的插入符
CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
//光标创建之后,默认情况下是隐藏起来的,因此需要使用ShowCaret来显示出来。
ShowCaret();
return 0;
}
创建位图光标:
方法类似 但要注意一点,位图对象要定义为View类的私有成员函数,而不是仅仅只在OnCreate函数中定义一个局部对象。