【问题标题】:MFC: What on earth is a CSplitterWnd Caret?MFC:到底什么是 CSplitterWnd Caret?
【发布时间】:2008-10-16 15:51:35
【问题描述】:

在 CSplitterWnd 类的上下文中,插入符号到底是什么?我找不到任何与 CSplitterWnds 明确相关的文档...

编辑:具体来说,这些函数实际上做了什么:

CWnd * pCurView = m_wndSplitter2.GetPane(2, 0);
pCurView->ShowCaret()
pCurView->HideCaret()

EDIT2:请注意,我知道插入符号是什么,我专门询问 CSlitterWnd 类上下文中的功能。我看过 MSDN 文档,但没有提供真正的解释。

【问题讨论】:

  • 应该重新命名这个问题,您示例中的 Show/Hide Caret 确实与 CSplitterWnd 无关。 ShowCaret 是一个独立于 CSplitterWnd 窗格的 CWnd 成员。

标签: c++ mfc caret cwnd


【解决方案1】:

任何 CWnd 都可以有一个插入符号,但只有 CreateCaret 首先实际显示一个插入符号的 CWnd 继承者。 @DannySmurf 为您提供了一个示例 - CEditView - 一个创建可以显示和隐藏的插入符号的 CView。

根据您在窗格中获得的特定类型的 CView,ShowCaret 可能无关紧要。它与 CSplitterWnd 无关。

【讨论】:

    【解决方案2】:

    这是正常意义上的插入符号。仅当您在同一窗口中拆分两个 CEditView 时适用。

    【讨论】:

      【解决方案3】:

      在 Windows SDK 世界中,光标实际上是鼠标指针,插入符号是您在文本控件等中看到的闪烁栏...

      【讨论】:

        【解决方案4】:

        具体;

        CWnd * pCurView = m_wndSplitter2.GetPane(2, 0);
        

        获取一个窗格,就像在 CView 派生类中一样,被拆分器窗口包围

        pCurView->ShowCaret()
        

        在该视图的文本编辑位置显示较小的垂直条。这是在任何文本编辑控件(例如 CEdit)中使用的光标

        pCurView->HideCaret()
        

        隐藏插入符号/垂直光标。

        【讨论】:

          【解决方案5】:

          这是文本光标。

          在早期版本的 Windows 中,文本光标就像校对者的插入符号(就像 ^ 仅在基线上)。这是有道理的,因为该标记是校对人员用来指示应在何处插入文本的标记。

          将它称为插入符号似乎仍然很奇怪,但他们这样做了,可能是因为他们已经决定使用“光标”这个词来表示其他人所说的鼠标指针。

          【讨论】:

          • 但是在 CSplitterWnd 类中没有显示插入符号!?!?
          • 与CSplitterWnd无关。只要您调用 GetPane,您就会得到一个指向您碰巧创建为窗格的任何 CWnd 的指针。对 ShowCarent 和 HideCaret 的调用与作为 CSplitterWnd 窗格完全无关。
          【解决方案6】:

          也许他们指的是光标,屏幕上闪烁的竖条。

          【讨论】:

            猜你喜欢
            • 2018-04-09
            • 1970-01-01
            • 1970-01-01
            • 2013-02-06
            • 2013-05-05
            • 2010-11-19
            • 2012-06-16
            • 2011-04-02
            • 2016-04-13
            相关资源
            最近更新 更多