码迷,mamicode.com
首页 > 其他好文 > 详细

创建插入符及插入符操作

时间:2015-01-29 19:20:19      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

插入符的创建应该在窗口创建之后进行,可以在WM_CREATE消息的响应函数中创建.(注意,视类窗口覆盖在框架窗口之上)

一、创建普通插入符

int CDrawView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;

    // TODO:  在此添加您专用的创建代码

    TEXTMETRIC tm;
    CClientDC dc(this);
    dc.GetTextMetrics(&tm);//取得当前设备描述表中的字体信息
    //将插入符的高度设为当前字体高度,宽度设为当前字体宽度/8,这是一个经验值.
    CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
    ShowCaret();//CreateSolidCaret创建的插入符初始时是隐藏的,调用ShowCaret来显示它.

    return 0;
}

二、创建图形插入符

int CDrawView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;
    // TODO:  在此添加您专用的创建代码

    static CBitmap bitmap;//注意把CBitmap对象定义为成员变量或静态变量,
    //否则当OnCreate函数结束后会导致CBitmap对象被析构,并销毁与该对象关联的资源,
    //导致插入符无法显示。
    bitmap.LoadBitmapW(IDB_BITMAP1);
    CreateCaret(&bitmap);//创建位图插入符
    ShowCaret();//显示插入符

    return 0;
}

技术分享

三、
可以在WM_LBUTTONDOWN或WM_LBUTTONUP消息中调用SetCaretPos函数,设置插入符在客户区中的显示位置为鼠标点击的位置
    SetCaretPos(m_BeginPaint);

 

 

创建插入符及插入符操作

标签:

原文地址:http://www.cnblogs.com/nitianbenbendan/p/4260626.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!