您的位置:首页 > 其它

MFC实现文本插入描述符

2013-08-08 08:24 169 查看
1、文本插入符的创建应该是窗口创建之后,也就是要在窗口创建完成消息WM_CREAT响应函数OnCreat中窗口创建完成后实现。

2、文本插入符是依附于视图类的,所以我们应该在视图类的OnCreat函数中完成。

a、 在文本的起始位置创建

int CMapBigView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
CClientDC dc(this);//获取DC

// 	/*  以下3行实现一个位图插入符  */
// 	static CBitmap bitmap;
// 	bitmap.LoadBitmap(IDB_BITMAP1);
// 	CreateCaret(&bitmap);

TEXTMETRIC tm; //定义一个文本信息结构体,用于接收文本的字体信息
dc.GetTextMetrics(&tm);//获取当前文本的字体信息,主要需要字体的高度和宽度
CreateSolidCaret(tm.tmAveCharWidth, tm.tmHeight); //创建一个 文件插入符
ShowCaret(); //显示

// TODO: Add your specialized creation code here

return 0;
}


b、通过捕获鼠标消息,可以再次设置文本插入符的位置为鼠标当前坐标

void CMapBigView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

SetCaretPos(point);

CView::OnLButtonDown(nFlags, point);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: