在程序中想要创建插入符,可以利用CWnd类的CreateSoldCaret()函数来完成,该函数的原型声明如下:
void CreateSolidCaret( int nWidth, int nHeight );
a) nWidth表示插入符的宽度。如果该参数为0,则表示与系统窗口边界的宽度保持一致。
b) nHeight表示插入符的高度。如果该参数为0,则表示与系统窗口边界的高度保持一致。
为CTextView类添加一个WM_CREATE消息响应函数OnCreate(),如下:
int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CClientDC dc(this);
TEXTMETRIC tm;//结构体变量tm,表示字体
dc.GetTextMetrics(&tm);
CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
ShowCaret();
return 0;
}