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

📄 untitled-45.txt

📁 mfc 教程
💻 TXT
字号:
3.3.1处理插入符
    CMainwindow的onsetFocus和onKillFocus处理程序在VisualKB窗口接收到输人焦点后
生成插入符,失去焦点时销毁括人符。  onsetFocus将插人符宽度设置为 2或调用:: Getsys-
temMetrics返回的SM.CXBORDER值,哪个更大选择哪个,以便插人符即使在很高的图形分
辨率显示器上都可见:
      void CMainwindow:: onsetFocus(CWnd。  PWnd)
      Z
          Createsol。dCaret(。ax(2,::GetsystemMetrics(SM-CXBORDER)),
              。 cvChar);
          SetCaretPos(In--ptCaretPos);
          ShowCaret();
      j
onKillFocus隐藏插人符,保存当前插入符位置以便下次调用onsetF0cus时还原它,然后销毁
插人符:
      voidCMainwindow::onKillFocus(CWfld。 pwnd)
          HideCaret();
          In--ptCaretP。S= GetCaretP。S();
          二二DestroyCaret();
      g
在 CMainwindow:: onCreate中用最左边字符单元的坐标将 rn-ptCaretPos初始化。在窗口失
去输人焦点时,它被当前插人符位置重新初始化。因此,在onsetF0cus中对SetCaretPos的调
用会在程序第一次启动时把插人符放到文本框的开头,而在随后的程序调用中将插入符还
原到上次占据的位置。
    当左箭头键、右箭头键、Home键或End键被按下时,onKeyDown将移动插入符。这些键
都不产生WM.CHAR消息,因此VisualKB处理WM.KEYDOWN。基于"Char中的虚拟键代
码, switchcase语句块将执行相应的处理例程。左箭头键(它的虚拟键代码是   VK- DeFT)的
处理程序由下列语句组成:
        case VIL-LEFT:
          。f(。nTextPos!= o)主
                      m-nTextPos;
                PositionCaret();
            S
              tireax;
。nTextPos是插人文本字符串中下一个字符的位置。文本字符申保存在CString对象

⌨️ 快捷键说明

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