zoukankan      html  css  js  c++  java
  • vc创建文本插入符


      插入符多用于文本处理程序中,其实也就是我们经常在字处理软件中看到的光标指针。

    在程序中,可以创建二种插入字符,第一种是固定的插入符号(SolidCaret),第二种就是可以是图形的插入符号。

      先看第一种,  利用MFC wizard建立一个Project

    int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
        
    if (CView::OnCreate(lpCreateStruct) == -1)
            
    return -1;
        
        
    //create client device context
        CClientDC dc(this);
        
    //文本度量结构体
        TEXTMETRIC tm;
        
    //取当前设备上下文的文本度量值
        dc.GetTextMetrics(&tm);
        
    //创建插入符
        CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
        
    //由于创建的插入符默认是隐藏的,所以需要显示插入符
        ShowCaret();
        
    return 0;
    }


    CreateSolidCaret方法用于创建一个插入符,该方法需要指定插入符的高度及宽度。

     在程序中用当前文本平均宽度/8得到,这个不是什么规律,而是多次试验得出来的。 

      第二种就是利用位图来创建插入符,利用方法 CWnd::CreateCaret(CBitmap *bitmap)

    如下程序:

    //

    CTestView : 
    public CView
    {
       
    private:
          CBitmap bitmap;
    }


    int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
        
    if (CView::OnCreate(lpCreateStruct) == -1)
            
    return -1;
        
        
        CClientDC dc(
    this);
        
    //加载位图标识
        bitmap.LoadBitmap(IDB_BITMAP1);
        CreateCaret(
    &bitmap);
        ShowCaret();
        
    return 0;
    }


     效果如下:


     

  • 相关阅读:
    .net Delegate
    Kaprekar constant(卡普雷卡尔黑洞)
    How to get URL and QueryString value in an ASP.NET page
    Jquery and ashx achieve login of ajax
    MAC 开发笔记——Objective C 语法之Category和Extension
    MAC 开发笔记 - ObjectiveC 语法之selector
    肮脏的选择
    MAC Air 使用手记
    MAC 开发笔记——Objective C 之 基础设计模式
    太平洋战争——比B.o.B还是差了点
  • 原文地址:https://www.cnblogs.com/repository/p/1853188.html
Copyright © 2011-2022 走看看