mfc编程 孙鑫_MFC文本编程——孙鑫第五课
1.创建并显示插入符
(1)根据字体的大小绘制插入符“
CClientDC dc(this);
TEXTMETRICA tm;
dc.GetTextMetrics(&tm);
CreateSolidCaret(tm.tmAveCharWidth/8,tm.tmHeight);//根据字体大小创建插入符
ShowCaret();
(2)绘制图形插入符“
bitmap.LoadBitmap(IDB_BITMAP1);
CreateCaret(&bitmap);
ShowCaret();
3.显示文本:(OnDraw函数中)
(1)CString str="各种猥琐的东西都往东南枝上挂有木有!";
pDC->TextOut(0,0,str);
(2)使用LoadString()加载字符串
在stringTable新建一个字符串,设置ID为IDS_Shen,但是笔者在编写是遇到一个问题:
error RC2151 : cannot reuse string constants, 61446(0xF006) - "(##########,##########)" already defined. Cannot add 61446(0xF006) - "一未命名文件".
搜索了下,原来是是在发布的时候,使用Release版本,Static library编译时,MFC中afxres.h中61446已竟被使用,出现同一ID被两次使用。
所以,将自己写的那段资源ID改成比61446大些问题就解决了。
4.创建路径层
//路径层
CSize sz=pDC->GetTextExtent(str);
pDC->BeginPath();
pDC->Rectangle(0,0,sz.cx,sz.cy);
pDC->EndPath();
pDC->SelectClipPath(RGN_AND);//创建剪切区域,有5中模式
5.输入文本:
void CTextView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
TEXTMETRICA tm;
dc.GetTextMetrics(&tm);
if(0x0d==nChar)//回车键
{
M_Str.Empty();
PointPos.y+=tm.tmHeight;
}
else if(0x08==nChar)//退格键
{
COLORREF clr=dc.GetTextColor();
dc.SetTextColor(dc.GetBkColor());
//M_Str=M_Str.Left(M_Str.GetLength()-1);
dc.TextOut(PointPos.x,PointPos.y,M_Str);
M_Str=M_Str.Left(M_Str.GetLength()-1);
dc.SetTextColor(clr);
}
else
{
M_Str+=nChar;
}
CSize sz=dc.GetTextExtent(M_Str);
CPoint pt;
pt.x=PointPos.x+sz.cx;
pt.y=PointPos.y;
SetCaretPos(pt);
dc.TextOut(PointPos.x,PointPos.y,M_Str);
CView::OnChar(nChar, nRepCnt, nFlags);
}
mfc编程 孙鑫_MFC文本编程——孙鑫第五课相关推荐
- mfc编程 孙鑫_MFC(文本编程,孙鑫C++第五讲笔记整理) | 学步园
以下是第五讲的主要内容(文本输入输出,要先设置光标位置,然后再输出文本) 1.CWnd::CreateSolidCaret创建插入符,ShowCaret()显示插入符.GetTextMetrics() ...
- mfc编程 孙鑫_MFC(ActiveX编程,孙鑫C++第十八讲笔记整理)
一:在VB中调用X控件,添加方法project->Add components.另外可以用Object Browser来查看控件 二:在VC中创建X控件 1.新建一个X工程名为Clock,注意一 ...
- MFC学习日记五:Mfc文本编程
5: 文本编程首先需要创建一个插入符,创建插入符用CreateSolidCaret( int nWidth, int nHeight );参数分别是Caret(插入符)的宽度和高度,如果设置为0则会认 ...
- 两台电脑串口传输文件及调用opencv库编程显示图片和文本
文章目录 一.两台电脑利用串口进行文件传输 (一).实验内容 (二).配置环境 (三).实验过程 (四).结果分析 二.在Ubuntu下基于Linux环境调用opencv库编程显示图片和文本 (一). ...
- 孙鑫源java_「 孙鑫源 」孙鑫源的名字解释 - 名字网
孙 简体字:孙(sūn) 繁体字:孫 部首:子 五行:金 简体笔画:6 繁体笔画:10 吉凶:吉 汉字解释 ☆孙 [sūn] ☆儿子的儿子:-子.-女. ☆跟孙子同辈的亲属:外-.侄-(侄儿的子女). ...
- PLC的ST编程方式--文本编程,简洁啊
一.ST语言介绍 发现网上PLC的ST编程资料极少.不过,道理也很简单,因为做PLC的基本都是电气出身,梯形图类似于继电器逻辑,比较接近他们的习惯...ST属于文本编程,符合程序员的习惯,兼职做plc ...
- 如何自学python编程-零基础如何自学编程?
如果你正在自学编程和代码,并苦于没有优质资源,那么我就找对了地方. 接下来给你介绍21个免费学习写代码的网站,在办公室里或在家里即可轻松学编程. 编程初学者必必必必必必!看! 马!上!打包收藏这21个 ...
- ab st语言编程手册_西门子PLC编程SCL和LAD谁才是王者?一起讨论一下
现在很多大品牌的中高级 PLC 都支持国际电工委员会 IEC61131 标准中规范的五种编程语言的混合编程,即梯形图(LD).结构化文本(ST).流程图(SFC).指令表(IL)和功能块(FB).在这 ...
- python函数的作用降低编程复杂度_Python函数式编程
lambda 本文将介绍Python中函数式编程的特性.在对函数式编程的概念有了了解后,本文会介绍iterators和generators等语言特性,还有itertools和functools等相关的 ...
最新文章
- 基于VLC的rtsp服务器linux平台搭建
- UILabel-UITextField-UIBottonamp;nbsp;UI_…
- event级别设置Resumable Space Allocation
- 前端-----盒子模型
- Django 数据导入和导出
- bakaxl启动器怎么导入整合包_bakaxl启动器加皮肤光影mod
- apollo源码分析 感知_Kitty中的动态线程池支持Nacos,Apollo多配置中心了
- android studio按钮槽函数,AndroidStudio按钮Button退出程序
- python+selenuim自动化测试(六)上传文件
- 【王俊杰de人工智能实战课】第8次作业
- Android中MVC框架的运用
- HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密
- 利用WPF创建含多种交互特性的无边框窗体
- 数据中心规划设计参考-(文章以GB 50174为参考基准)
- 影响中国互联网的100人
- 还在用PPT做组织架构图?公司都在用的架构图软件是什么?
- Mysql第一天笔记01——安装mysql
- Kalman滤波在温度测量中的应用(含MATLAB仿真)
- Think In Java第四版读书笔记
- 高二计算机水平测试题,2020——2021学年河南省高二学业水平测试信息技术选择判断模拟题(含答案)...