onchar
void CMfcView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)//Windows响应函数
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);//指向当前活动视图窗口
TEXTMETRIC tm;
CFont font;//创建字体
font.CreatePointFont(300,"黑体",NULL);//null用于表示从屏幕设别来完成这种转化 创建大小 字体类型
CFont *oldfront=dc.SelectObject(&font);
dc.GetTextMetrics(&tm);//用于获得当前视图中窗口的特定字符串的长度和宽度
if(0X0D==nChar)
{
MessageBox("回车是个系统bug!");
m_strline.Empty();//删除原来字符串储存的内容
m_orignlocation.y+=tm.tmHeight;//纵坐标进行移动位置
}
else if (0x08==nChar)//接受删除键
{
COLORREF clr=dc.SetTextColor(dc.GetBkColor());//获取背景色
dc.TextOut(m_orignlocation.x,m_orignlocation.y,m_strline);
m_strline=m_strline.Left(m_strline.GetLength()-1);
dc.SetTextColor(clr);//恢复背景色
}
else
{
m_strline+=nChar;
}
CSize sz=dc.GetTextExtent(m_strline);
pt.x=sz.cx+m_orignlocation.x;
pt.y=m_orignlocation.y;
SetCaretPos(pt);
dc.TextOut(m_orignlocation.x,m_orignlocation.y,m_strline);
dc.SelectObject(oldfront);
CView::OnChar(nChar, nRepCnt, nFlags);
}
onchar的更多相关文章
- MFC 对话框响应OnChar()
最近在写程序时,出现了对话框里面不接收键盘消息的情况,特别搜索了以下内容 MFC中对话框是不会直接响应OnChar和OnKeyDown消息的,会被 其它控件拦截,测试时发现不会进入这两个函数,必须重定 ...
- 关于对话框不能响应OnKeyDown和OnChar函数的一些说明
(1)现象 在MFC的对话框中,映射了WM_CHAR和WM_KEYDOWN消息响应函数后,还是不能响应OnKeyDown和OnChar. (2)原因 因为MFC在进行设计的时候,这两个消息被对话框 ...
- MFC onchar()
为什么在CView类中可以对ON_CHAR进行相应,添加消息处理函数onchar就可以了,但是在CDialog中要对ON_CHAR相应,直接添加不行? CView相当于Text控件,你可以在Text控 ...
- 对话框的按键处理 PreTranslateMessage、OnKeyDown和OnChar
对话框的按键处理 PreTranslateMessage.OnKeyDown和OnChar 1.MFC对话框不能响应OnKeyDown和OnChar函数(1)现象 在MFC的对话框中,映射了WM_C ...
- Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备四)
接下来,分析uilib.h中的WinImplBase.h和UIManager.h: WinImplBase.h:窗口实现基类,已实现大部分的工作,基本上窗口类均可直接继承该类,可发现该类继承于多个类, ...
- windows消息机制详解(转载)
消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.消息本身是作为一个记录传递给应用程序的 ...
- MFC之键盘和键盘消息处理
今天学习了最基本的MFC操作,键盘及键盘消息函数,跟着书中的内容自己编了个小程序.检测用户是否同时按下SHIFT和B键 第一步:先是建了一个单文档模式的MFC程序,添加了键盘消息及处理函数.键盘消息处 ...
- 转:CWnd的函数,以后可以在这儿找了!
CWnd CObject └CCmdTarget └CWnd CWnd类提供了微软基础类库中所有窗口类的基本功能.CWnd对象与Windows的窗口不同,但是两者有紧密联系.CWnd对象是由 ...
- 孙鑫视频学习:“operator +=” 不明确的问题解决方法
在基于单文档应用程序的MFC程序中,在OnChar函数中使用m_strLine+=nChar时,出现了error C2593:“operator +=”不明确的错误,经百度,找到如下解决方法,亲测可用 ...
随机推荐
- UML问题
1.在创建协作图时需要先确定参与者,而协作图的工具栏里是没有Actor的,这是需要先new Actor,然后把其拖动到工作区:实验过程中发现必须创建在用例视图下,若是创建在逻辑试图下那么根本无法继续操 ...
- 一张图看懂片式多层陶瓷电容器(MLCC)
- C51 库函数(3)
3.3 STRING.H:串函数 串函数通常将指针串作输入值.一个串就包括2个或多个字符.串结以空字符表示.在函数memcmp,memcpy,memchr,memccpy,memmove和memset ...
- android:ListView的局部刷新
1.简介 对于android中的ListView刷新机制,大多数的程序员都是很熟悉的,修改或者添加adapter中的数据源之后,然后调用notifyDataSetChanged()刷新ListView ...
- redis 源码分析
参考: http://redisbook.readthedocs.org/en/latest/index.html http://www.databaseskill.com/3421161/ The ...
- sql server 2005中使用with实现递归
WITH fw_requestion_note_temp(old_apply_id) AS ( --取根节点放入临时表 SELECT old_apply_id FROM fw_requestion_n ...
- latch:library cache
一:硬解析造成的shared pool latch 争用: 每一个sql被执行之前,先要到library cache中根据hash_value查找parent cursor,这就需要先获得librar ...
- DEV控件的使用(二次封装BaseUI)
一:DEV的安装 直接点击exe文件安装,安装完成之后,将控件添加到工具栏,如下图添加即可 二:注意事项 项目使用的是二次封装的BaseUI,有些属性和事件在BaseUI的控件中由于太多不能全部显示, ...
- Tomcat内存溢出详解【转载】
本文转载自 http://elf8848.iteye.com/blog/378805 Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryEr ...
- 16个不错的git别名
git 是一个非常棒的源代码管理工具,它的使用已经完全整合到开发的工作流当中:同时,git 还是一个 review/OTAP/deployment 工具. 当在 CLI 中使用 git 时,有时必须输 ...