⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 untitled-46.txt

📁 mfc 教程
💻 TXT
字号:
。strlnputTex冲。PositionC。t是CMainwindow中保护类型成员函数,它使用GetTextExtent
来找到与保存在。nTextPos中的字符位置相对应的文本字符申中像素的位置,然后调用
SetCaretPos将插人符移动到该位置。在核实。nTextPos没有超出范围以至使插入符移出左
边之后,VXILEry处理程序将减少。nTextPos的值并调用PositionCaret来移动插人符。如
果。nTextPos是0,表明插入符已经在输人项字段的最左端了,此时键击被忽略。其他VK一
处理程序的操作也同样直接。例如:VK—END处理程序,通过语句
      。nTextPos。 m-strlnputText.GetLength();
      PosstsonCaret();
将插人符移动到文本字符串的结尾处。Gettength是CString的成员函数,返回字符串中字符
的数量。使用CString对象保存输人给VisualKB的文本使得文本处理比以往简单地使用字
符数组处理字符串更简单。例如,把一个新字符添加到字符串结尾onChar处理程序所要做
的只是
      ITlu-strlnputText十二 "Char;
在涉及到字符串处理时,没有比这更容易的了。测览一下 VISll。IKB。pp,会看到若干 CString
成员函数和运算符,包括  CString:: teft,它返回包含字符串左边  n个字符的  CString对象;
CString:: Right,返回最右边  n个字符; CString::  Forma,它执行类似  printf的字符串格式化。
    整整半章内容讲述了鼠标输人以后,不让VisualKB执行一些与鼠标有关的操作好像有
些说不过去,因此我增加了一个onLButtonDown处理程序,它允许在文本框中使用鼠标左键
单击来移动插人符。除了给程序添加一个好的功能以外,onLButtonDown处理程序还允许我
们检查一个函数,该函数获取鼠标单击发生的位置,并返回文本字符串中相应字符位置。按
键处理程序本身极其简单:
      void CMainwindow::OnLButtonD0wn(UINT "Flags,CPoint point)
      Z
          。f(。rcTextBox.PtlnRect(po。nt))爸
              In--nTextPos=GetNearestPos(noint);
              PosstlonCaret();
          2
      Z
。。TextBox是包围文本框的矩形。调用CRect::PtlnRect确定是否有单击在矩形内发生(如
果没有则不执行任何操作而返回)之后,ollLBllttollDO。用 CM。illwilld0W::ktNe。。Sip08为。
nTextPos计算一个新的值并调用PositionCaret将插入符重新定位。GetNearestPos首先检查看
是否在字符串左边鼠标单击发生了,如果发生则为新的字符位置返回0:
      if(point.x<=。ptTextorigin.x)
              return 0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -