文本插入符和图形插入符

1.1创建文本插入符

  CWnd类的CreateSolidCaret()函数:

  void CreateSolidCaret( int nWidth, int nHeight );

  例:Text

  利用MFCAppWizard创建单文档视图工程,插入符的创建应该在窗口创建之后进行,可以在WM_CREATE消息的响应函数OnCreate中添加创建插入符的代码。MFCAppWizard所生成的CTextView类中没有OnCreate函数,利用MFC类向导为CTextView类添加WM_CREATE消息的响应函数OnCreate;

  获取设备描述表中当前字体的信息,也就是文本的信息,然后根据字体的信息来调整插入符的大小,调用CDC类的GetTextMetrics成员函数可以获取设备描述表中当前字体的度量信息:

  

int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
    if (CView::OnCreate(lpCreateStruct) == -1)
         return -1;
                
    //创建设备描述表
    CClientDC dc(this);
    //定义文本信息结构体变量
    TEXTMETRIC tm;
    //获得设备描述表中的文本信息
    dc.GetTextMetrics(&tm);
    //根据字体大小,创建合适的插入符
    CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);
    //显示插入符
    ShowCaret();
                
    return 0;
}

1.2创建图形插入符

  CWnd类的函数CreateCaret:

  void CreateCaret( CBitmap* pBitmap );

  例:Text

  插入位图资源;

  当OnCreate函数执行完成之后,bitmap对象就要发生析构,同时将与之相关联的资源销毁,故须将位图对象设为CTextView类的成员变量:

  

int CTextView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
    if (CView::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    bitmap.LoadBitmap(IDB_BITMAP1);
    CreateCaret(&bitmap);
    ShowCaret();
    
    return 0;
}
时间: 2024-08-28 23:58:39

文本插入符和图形插入符的相关文章

用win32 API监听U盘插拔并取得其盘符/取得当前插入U盘的盘符

版权声明:本文为博主原创文章,未经博主允许不得转载. 用win32 API监听U盘插拔并取得其盘符 1.使用RegisterDeviceNotification()函数注册 [cpp] view plain copy static const GUID GUID_DEVINTERFACE_USB_DEVICE = {0xA5DCBF10, 0x6530, 0x11D2, {0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED}}; void Registe

C# 插入、删除Excel分页符

概述 对Excel表格设置分页对我们预览.打印文档时是很方便的,特别是一些包含很多复杂数据的.不规则的表格,为保证打印时每一页的排版美观性或者数据的前后连接的完整性,此时的分页符就发挥了极大的作用.因此,本文将介绍C#设置Excel分页的方法.当然,对于Excel表格中已有的分页符,如果我们也可以根据需要自行删除分页. 示例要点梳理 插入分页1.1 插入横向分页1.2 插入纵向分页 删除分页2.1 删除全部分页2.2 删除指定分页 代码操作及效果 一.插入Excel分页 C# using Spi

WPS2019文档之插入形状图片图形

插入形状图片图形 1.插入图片 [插入]选项卡 2.插入形状 [插入]选项卡 按着 shift 绘制 正方形/圆形 3.形状基础操作 [插入]选项卡 3.1.选择 点选(ctrl) 框选(推出,按Esc键) 选择窗格 3.2.选择窗格的应用 重命名 显示与隐藏 层次调整 浮于文字上方 衬于文字下方 3.3.颜色填充 3.4.图形复制方法 Ctrl+拖动 Ctrl+c 3.5.图形大小设置 长度 宽度 4.形状效果对齐 形状效果 格式刷 对齐 旋转 组合:将两个以上图形组合成一个 微调 ----

Microsoft office(1)分页符和分节符

Microsoft office下的页面布局中的分页符和分节符的区别: 分页符:标记一页的终止并开始下一页的点 分节符:插入分节符并在下一页开始新节 一般情况下,分节符在分页符外围,分节符一般是各种格式控制的单位,如页眉,页脚等.而分页符只是在分节符中进行分页的符号.例如,有的页面需要页眉,有的页面需要页脚: 那么,我们需要做的就是将这三个部分分别插入分节符,而在每个分节符内部又可以插入多个分页符.

Linux mint 启动文本模式(不启动图形界面)

Linux Mint 系统用了很久,很顺手,赞一个! 有一天想同时运行多个虚拟机linux系统做实验,想着只启动文本模式可以省点内存资源,结果试了多种方法都不成功,网上现有针对Ubuntu原版和CentOS的方法都不适用:最后自己摸索了一套3步最简洁有效的办法,实质是让系统启动文本界面后使图形界面不再启动,写出来供大家参考少走弯路,也做个记录免得自己忘了. 亲测Linux Mint 19/19.1/19.2有效,其他Ubuntu版本未试过,有试过有用的小伙伴请补充,谢谢! 1.修改并保存/etc

Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n

转载链接:http://blog.csdn.net/tskyfree/article/details/8121951 一.概念: 换行符‘\n’和回车符‘\r’ (1)换行符就是另起一行  --- '\n' 10 换行(newline) (2)回车符就是回到一行的开头 --- '\r' 13 回车(return) 所以我们平时编写文件的回车符应该确切来说叫做回车换行符     二.应用: (1)在微软的MS-DOS和Windows中,使用“回车CR('\r')”和“换行LF('\n')”两个字符

菜鸟随笔(1)---Windows、Unix、Mac不同操作系统的换行问题 回车符\r和换行符\n

一只菜鸟横空出世,码农世界闯一闯,每天进展多一丢丢. Windows.Unix.Mac不同操作系统的换行问题 回车符\r和换行符\n 一.概念: 换行符'\n'和回车符'\r' (1)换行符就是另起一行 --- '\n' 10 换行(newline) (2)回车符就是回到一行的开头 --- '\r' 13 回车(return) 所以我们平时编写文件的回车符应该确切来说叫做回车换行符 CR: 回车(Carriage Return) \rLF: 换行(Line Feed) \n 二.应用: (1)在

AGS中通过FeatureServer插入数据失败、插入数据在WMTS请求中无法显示以及version概念的讨论

1.背景 在多个项目中,当我方接口给其他部门人员使用时出现了插入数据失败或者插入的数据在WMTS请求中无法显示出来的问题.针对这些问题,我在这篇文章中,将详细描述造成以上问题的原因.在此WebGIS产品的前台和后台接口中,此插入数据核心部分均是FeatureServer请求.所以我们首先对FeatureSever服务做一个大致的了解. 2.FeatureServer服务的大致了解 2.1 FeatureServer服务提供的功能 FeatureServer服务可以提供如下几种服务: 我们可以得出

usb协议分析-设备描述符配置包-描述符

/* usb协议分析仅供大家参考---设备描述符配置包,设备描述符, 地址设置, 配置描述符, 字符串描述符 */ /* -1- usb设备描述符配置包 */ typedef struct _USB_SETUP_PACKET { REQUEST_TYPE bmRequestType; BYTE bRequest; WORD_BYTE wValue; WORD_BYTE wIndex; WORD wLength; } USB_SETUP_PACKET; 1.bmRequestType 是包含有下面