2017.6.17 字符串输入
来源:互联网 发布:ae cs6 mac汉化破解版 编辑:程序博客网 时间:2024/06/07 04:49
我们要在屏幕上输出连续的字符串,首先要创建消息响应函数WM_ONCHAR,此函数是用来读取键盘输入的字符串。接下来添加变量 m_strLine 来保存输入的字符串,m_strLine 是属于CString类的。通过if语句 分别响应回车键 退格键和其他字符。
void CTEXTView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){ // TODO: 在此添加消息处理程序代码和/或调用默认值 /**********************wjl**************************** <键入字符串> 1. 在OnChar下添加消息响应 就是响应键盘输入的字符 2. 在键盘上按下回车键,字符串的输入就要换行(在Y方向上增加一个字符高度) 3. 在键盘上按下退格键,删除一个字符,这里并不是直接删除,而是把文本设置成背景色, 然后去掉最后一个字符,再显示出来,附上之前的颜色 4. 在键盘上按下字符后,直接在原有字符串m_strLine 后面加上nChar 字符 5. 最后要用TextOut 输出按键后的字符串 6. 要让光标跟随字符的输入,让光标获取当前字符串的尺寸,从而重新显示光标 ***********************wjl****************************/ CClientDC dc(this); TEXTMETRIC tm; dc.GetTextMetrics(&tm); if (0x0d == nChar) // 如果是按下回车键 清空之前的字符串 { m_strLine.Empty(); m_ptOrigin.y += tm.tmHeight; // 对回车键的处理 按下回车后光标跑到下一行 } else if (0x08 == nChar) // 按下退格键 消除一个字符 { // 首先将文本设置成背景色(要保存之前的颜色 SetTextColor函数返回先前的颜色) COLORREF clr = dc.SetTextColor(dc.GetBkColor()); dc.TextOutW(m_ptOrigin.x,m_ptOrigin.y,m_strLine); // 接下来 减少一个字符 m_strLine = m_strLine.Left(m_strLine.GetLength()-1); dc.SetTextColor(clr); // 将文本颜色设置成之前的颜色 } else // 将字符加到之前的对象中 { m_strLine = m_strLine+(char)nChar; } // 让光标随着字符移动 CSize sz = dc.GetTextExtent(m_strLine); // 获得当前字符串的尺寸 CPoint pt; pt.x = m_ptOrigin.x + sz.cx; pt.y = m_ptOrigin.y; SetCaretPos(pt); // 重新显示光标 dc.TextOut(m_ptOrigin.x,m_ptOrigin.y,m_strLine); CView::OnChar(nChar, nRepCnt, nFlags);}
我们想要插入符随着鼠标左键移动,首先创建消息响应函数WM_OnLButtonDown,用来捕获鼠标左键,SetCaretPos() 函数是光标的位置函数
void CTEXTView::OnLButtonDown(UINT nFlags, CPoint point){ // TODO: 在此添加消息处理程序代码和/或调用默认值 /**********************wjl**************************** <鼠标左键响应> 1. 按下鼠标左键,光标自动定位到鼠标处 ***********************wjl****************************/ SetCaretPos(point); // 让光标跟着鼠标左键走 m_strLine.Empty(); // 将CString 里面的内容清空 m_ptOrigin = point; // 将鼠标左键按下的坐标赋给 m_ptOrigin 用来确定字符串的起始位置 CView::OnLButtonDown(nFlags, point);}
阅读全文
0 0
- 2017.6.17 字符串输入
- 字符串输入
- 字符串输入
- 字符串输入
- 输入字符串时输入空格
- 输入字符串时输入空格
- 输入字符串,分解字符串数组
- 字符串和输入流互转
- 输入字符串后退出
- 字符串输入总结
- 字符串输入的陷阱
- C++几个字符串输入
- 对输入字符串计数!
- 字符串输入计算表达式
- 输入网址,字符串检查
- 字符串和输入流互转
- c++字符串输入小结
- C++中字符串输入
- Android 录音MediaRecorder到AudioRecord
- 机器/深度学习概率论与数理统计学习笔记
- RunLoop总结:RunLoop的应用场景(四)
- SQL数据库 最基础
- 你所不知道的"网站外链"高级操作策略
- 2017.6.17 字符串输入
- 求鞍点
- JavaScript面向对象程序设计——对象
- Q117:PBRT-V3反射模型(Reflection Models)笔记
- 机器/深度学习矩阵和线性代数学习笔记
- Codeforces Round #419 (Div. 2)(A+B)
- LINUX UMASK详解
- 如何进入大数据领域
- RunLoop总结:RunLoop的应用场景(五)