^_^ TY 2019-03-28 15:54 采纳率: 0%
浏览 197

[求助]MFC的CRichEditView视图,将Tab键产生的空格修改为两个空格出错了

在捕获tab按键消息时修改执行,获取光标位置,在该位置按Tab时输出两个空格,当前位置后移两位出错

if ((VK_TAB == pMsg->wParam) && (WM_KEYDOWN == pMsg->message) && (pMsg->hwnd == GetSafeHwnd()))
    {
        CString strContent;//视图内容
        long lBegin = 0;
        long lEnd = 0;
        GetRichEditCtrl().GetSel(lBegin, lEnd); //当前光标位置
        GetRichEditCtrl().GetWindowText(strContent);
        if (lBegin != lEnd)
        {
            strContent = strContent.Left(lBegin) + strContent.Mid(lEnd);
        }
        strContent.Insert(lBegin, "  ");
        GetRichEditCtrl().SetWindowText(strContent);
        GetRichEditCtrl().SetSel(lBegin + 2, lBegin + 2);
        return TRUE;
    }

执行结果:
图片说明
在6前面回车,然后再按Tab就变成下图情况了
图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 有没有帮写代码做实验仿真的
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog
    • ¥15 Excel发现不可读取的内容
    • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
    • ¥20 yolov5自定义Prune报错,如何解决?