MFC实现文本的基本操作
来源:互联网 发布:ff是什么软件 编辑:程序博客网 时间:2024/05/07 07:01
1、在消息WM_CREAT响应函数OnCreat中窗口创建文本插入符。
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CView::OnCreate(lpCreateStruct) == -1)return -1;CClientDC dc(this); TEXTMETRIC tm;//定义一个文本信息结构体,用于接收文本的字体信息dc.GetTextMetrics(&tm);//获取当前文本的字体信息,主要需要字体的高度和宽度CreateSolidCaret(tm.tmAveCharWidth, tm.tmHeight); //创建一个 文件插入符ShowCaret();//显示光标return 0;}
2、设置光标的位置为当前鼠标的点击位置
CString strLine; //存放文本缓冲区POINT OldPoint;//存放鼠标的当前位置void CMyView::OnLButtonDown(UINT nFlags, CPoint point) {// TODO: Add your message handler code here and/or call defaultSetCaretPos(point);//设置光标的位置为鼠标当前点击位置OldPoint = point;//存放当前鼠标位置strLine.Empty();//清空文本缓冲区,就行下一次输入CView::OnLButtonDown(nFlags, point);}
3、通过捕获WM_CHAR消息,获取键盘输入消息。
void CMyView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) {// TODO: Add your message handler code here and/or call defaultCClientDC dc(this);TEXTMETRIC tm;dc.GetTextMetrics(&tm);//获取文本信息if (0x0d == nChar) //换行处理{strLine.Empty(); //情况缓冲区等待下一次输入OldPoint.y += tm.tmHeight;//文本插入符 Y坐标加一个文本高度}else if (0x08 == nChar)//回车键处理{COLORREF clr = dc.SetTextColor(dc.GetBkColor()); //设置文本颜色为白色背景dc.TextOut(OldPoint.x, OldPoint.y, strLine);//输出文本strLine = strLine.Left(strLine.GetLength()-2);//去掉输出字符串的最后一位+空格dc.TextOut(OldPoint.x, OldPoint.y, strLine);dc.SetTextColor(clr);//恢复文本颜色}else{strLine += nChar;//把输入的字符 缓存在缓冲区中}/* 设置文本插入符的位置为当前输入位置 */CSize sz = dc.GetTextExtent(strLine);//获取字符串文本信息POINT pt;pt.x = OldPoint.x + sz.cx;pt.y = OldPoint.y;SetCaretPos(pt);//设置文本插入符为当前文本输出的最后dc.TextOut(OldPoint.x, OldPoint.y, strLine);//输出文本CView::OnChar(nChar, nRepCnt, nFlags);}
- MFC实现文本的基本操作
- MFC一天一练 ---- 基本的文本操作
- MFC实现数据库的基本操作
- MFC通过获取菜单句柄,实现菜单的基本操作
- MFC的一些基本操作
- MFC 基本操作 --修改对话框、静态文本背景颜色
- MFC操作文本型数据的源码
- MFC 对话框 文本操作
- MFC实现文本输出的不同颜色。。。。
- Qt4 对文本的基本操作
- 文本编辑器vim的基本操作
- MFC对EXCEL的一些基本操作
- mfc下文件的基本操作
- MFC 对Excel的基本操作
- MFC 文件基本操作的异常情况
- MFC之基本的文件操作
- 大连实训之基于MFC对数据库的基本操作(功能实现)
- MFC基本图形的绘制(三)在SDI中实现绘图操作
- 针对于jetty部署iMatrix平台内存溢出问题解决方案
- 搜索引擎大PK谁将是最后的王者
- Node.js Cannot find module 'xxx' 有关问题解决
- FreeBSD软件安装卸载工具--Ports和Packages详解!
- 启动apk或者服务的常用方法
- MFC实现文本的基本操作
- css设置浏览器的滚动条样式
- Hibernate中createQuery与createSQLQuery两者区别
- 存储过程
- Real-Address Mode
- 嵌入式系统可执行文件格式
- android开发语言列表及对应简写
- 如何实现seo优化和网站建设相辅相成
- CSS的选择器